这是我现在实施的代码:
string image = String.Empty;
ImageField imageField = itm.Fields["image"];
MediaItem mediaItem = imageField.MediaItem;
if (mediaItem != null)
{
Stream stream = mediaItem.GetMediaStream();
Image img = Image.FromStream(stream);
Bitmap bmp = new Bitmap(img, 188, 122);
ImageConverter converter = new ImageConverter();
Byte[] bytes = (byte[])converter.ConvertTo(bmp, typeof(byte[]));
stream.Read(bytes, 0, bytes.Length);
image = "data:" + mediaItem.MimeType + "," + Convert.ToBase64String(bytes);
}
return image;
我想要做的是将所有通过的图像转换为PNG。我现在遇到的问题是,在上面看到的所有转换后,我从Sitecore读取的GIF图像呈现为黑色图像。
我尝试了一些实现,但结果似乎是一样的。
有人可以帮忙吗?
最好的问候,马吕斯。
答案 0 :(得分:0)
似乎实际的问题是我有一行额外的代码弄乱了,我正在谈论这个:stream.Read(bytes, 0, bytes.Length);
这是我目前正在使用的最终代码:
string image = String.Empty;
ImageField imageField = itm.Fields["image"];
MediaItem mediaItem = imageField.MediaItem;
if (mediaItem != null)
{
Stream stream = mediaItem.GetMediaStream();
Image img = Image.FromStream(stream);
Bitmap bmp = new Bitmap(img, 188, 122);
ImageConverter converter = new ImageConverter();
Stream pngStream = new MemoryStream();
bmp.Save(pngStream, ImageFormat.Png);
Byte[] bytes = (byte[])converter.ConvertTo(Image.FromStream(pngStream), typeof(byte[]));
image = "data:image/png;base64," + Convert.ToBase64String(bytes);
}
return image;
我希望它对某人有帮助。
度过美好的一天。