gpt4 book ai didi

c# - 图片上没有水印

转载 作者:行者123 更新时间:2023-11-30 21:43:53 27 4
gpt4 key购买 nike

我遇到了一个错误:无法从具有索引像素格式的图像创建图形对象

所以我将这段代码实现到我的方法中: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;
}

最佳答案

您正在创建一个新的 Bitmap 以传递给 Graphics.FromImage,然后返回未经编辑的原始 Bitmap。独立创建新的Bitmap,将其传递给FromImage,然后返回新的Bitmap

var edit = new Bitmap(bm.Width, bm.Height);
// ...
using (Graphics imagesGraphics = Graphics.FromImage(edit))
{
// draw original
// draw watermark
}
return edit;

关于c# - 图片上没有水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41236928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com