【发布时间】:2016-12-20 16:32:12
【问题描述】:
我遇到了一个错误: 不能从具有索引像素格式的图像创建图形对象
所以我在我的方法中实现了这段代码:Solution for "A Graphics Object cannot be Created from an Image that has an Indexed Pixel Format"
但现在我的水印不想在我的图像上绘制。
请任何人提供帮助。
代码:
private Image AddWaterMark(Image original)
{
Image waterMark = Image.FromFile(ConfigurationManager.AppSettings["GalleryFolder"] + @"\watermark.png");
Bitmap bm = (Bitmap)original;
Size waterMarkResize = ResizeFit(new Size(original.Width, original.Height));
using (Image watermarkImage = new Bitmap(waterMark, waterMarkResize))
using (Graphics imageGraphics = Graphics.FromImage(new Bitmap(bm.Width, bm.Height)))
{
imageGraphics.DrawImage(bm, new Rectangle(0, 0, bm.Width, bm.Height), 0, 0, bm.Width, bm.Height, GraphicsUnit.Pixel);
using (TextureBrush watermarkBrush = new TextureBrush(watermarkImage))
{
int x = (original.Width / 2 - watermarkImage.Width / 2);
int y = (original.Height / 2 - watermarkImage.Height / 2);
watermarkBrush.TranslateTransform(x, y);
imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(watermarkImage.Width + 1, watermarkImage.Height)));
}
}
return bm;
}
【问题讨论】:
-
您有任何错误吗?如果您将 watermarkBrush 更改为纯白色(或黑色)画笔怎么办?那你看到什么了吗?
-
没有错误。它保存图像但没有水印。尝试使用黑白画笔仍然没有在图像上创建任何内容。