在图片框中查看保存为字符串的图像
Posted
技术标签:
【中文标题】在图片框中查看保存为字符串的图像【英文标题】:View an image saved as a string in a picture box 【发布时间】:2021-12-22 13:29:35 【问题描述】:我将图像转换为字符串(base 64),并且我希望该字符串在 Windows 窗体项目的图片框中显示为图像。我该怎么做?
【问题讨论】:
就像你读过的每一本好的汽车维修手册一样。改装是拆卸的逆转 【参考方案1】:我想你想知道如何以人类可以阅读的形式在位图中显示文本。
为了能够在现有位图中绘制,您需要一个Graphics 对象。可以使用静态方法Graphics.FromImage(Image)获取。
一旦你有了一个 Graphics 对象,你就可以用它来绘制图像。在这种情况下,您将使用Graphics.DrawString 的重载之一
你的需求中有很多项目没有提到。
您的图片框是否已显示图像并且您希望此文本出现在此图像中吗?如果文本必须在现有图像上,您想要它的副本,还是文本必须在原始图像上?还是您想要只显示文字的新图片? 图像中的文本具有文本、字体(Arial 或 Times new Roman 等、大小、粗体、斜体等)、画笔(文本的颜色)和图像中的位置。您从哪里获得这些值?假设您知道从哪里获取文本、字体等,并且您有属性
class TextToImageWriter // todo invent proper name
public Font Font get; set;
public Brush Brush get; set;
public void AddTextToImage(Image image, string text, PointF textLocation)
using (Graphics graphics = Graphics.FromImage(image))
graphics.DrawString(text, this.Font, this.Brush, textLocation);
public Image CreateNewImageWithText(Image image, string text,
PointF textLocation)
Image clone = (Image)image.Clone();
this.AddTextToImage(clone, text, textLocation);
return clone;
public Image CreateEmptyImageWithText(string text, int width, int height,
Color backgroundColor, PointF textLocation)
Image image = new Bitmap(width, height)
using (Graphics graphics = Graphics.FromImage(Bmp))
using (SolidBrush brush = new SolidBrush(backgroundColor))
// fill the background
graphics.FillRectangle(brush, 0, 0, width, height);
// fill the text
graphics.DrawString(text, this.Font, this.Brush, textLocation);
当然,如果您不想创建类,可以将属性作为参数添加到函数中。
为简单起见,我省略了参数验证(图像不为空等)
用法:
TextToImageWriter imageWriter = new TextToImageWriter
Brush = ...
Font = ...
;
Image imageToPutTheTextOn = this.PictureBox1.Image;
string text = this.GetImageText(); // maybe from a text box?
PointF textLocation = this.GetTextLocation(); // maybe from some mumeric boxes?
Image imageWithText = imageWriter.AddTextToImage(imageToPutTextOn, text, textLocation);
this.PictureBox2.Image = imageWithText;
【讨论】:
哇非常感谢!!你解释的真清楚!!你帮了我很多!谢谢....以上是关于在图片框中查看保存为字符串的图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在winforms c#中从图片框中裁剪和保存非矩形但多边形区域[重复]