【发布时间】:2016-05-03 11:34:27
【问题描述】:
我正在尝试从base64string 生成缩略图。我将图像存储在表格中,并尝试从正在存储的base64string 生成缩略图。
如果我提供图像的路径,我可以生成缩略图,但这不适用于我的情况。
这是从图像路径生成缩略图的工作解决方案:
protected void GenerateThumbnail(object sender, EventArgs e)
{
string path = Server.MapPath("../src/img/myImage.png");
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
using (System.Drawing.Image thumbnail = image.GetThumbnailImage(100, 100, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero))
{
using (MemoryStream memoryStream = new MemoryStream())
{
thumbnail.Save(memoryStream, ImageFormat.Png);
Byte[] bytes = new Byte[memoryStream.Length];
memoryStream.Position = 0;
memoryStream.Read(bytes, 0, (int)bytes.Length);
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
Image2.ImageUrl = "data:image/png;base64," + base64String;
Image2.Visible = true;
}
}
}
谁能提供任何关于如何使用base64string而不是生成缩略图的图像路径的建议?
【问题讨论】:
-
如果您想对位图进行缩略图,请在将其转换为 base64 之前进行。以 base64 字符串开头意味着撤消最后几个步骤
-
你能举个例子吗?
-
对不起,这个帖子让我很困惑。您有一个 base64 字符串并想将其转换回位图并缩略图?
-
是的,我可以将 FromFile(path) 转换为缩略图,但无法确定如何将 base64 转换为缩略图
-
byte[] bytes = Convert.FromBase64String(b64);会将 b64 字符串转换为可以在 memstream ctor 中使用的 byte[]
标签: c# base64 drawing thumbnails