C#水印不适用于.gif和.tif图像

时间:2013-05-03 07:35:00

标签: c# watermark

我正在尝试使用.png图像为图像添加水印 我的.jpg和.png图像正在正确加水印,但.tif和.gif图像会出错。

我在c#中这样做。 我得到这个错误:

  

{“无法从具有。的图像创建图形对象   索引像素格式。在System.Drawing.Graphics.FromImage(图片   图片)at Watermarking.test_image_watermak.button1_Click(对象   发件人,EventArgs e)“}

我的代码

FileStream fs = new FileStream(img, FileMode.Open, FileAccess.Read);
                    image = Image.FromStream(fs);

                    int newWaterWidth = (int)((float)image.Width * .30);


                    int newWaterHeight = (newWaterWidth * watermarkImage.Height) / watermarkImage.Width;

                    Bitmap resizedWaterm = new Bitmap(newWaterWidth, newWaterHeight);
                    Graphics g = Graphics.FromImage((Image)resizedWaterm);

                    g.DrawImage(watermarkImage, 0, 0, newWaterWidth, newWaterHeight);

                    ***Graphics imageGraphics = Graphics.FromImage(image);*** //error at this line

                    TextureBrush watermarkBrush = new TextureBrush((Image)resizedWaterm);
                    int x = (image.Width / 2 - resizedWaterm.Width / 2);

                    int y = (image.Height / 2 - resizedWaterm.Height / 2);

                    watermarkBrush.TranslateTransform(x, y);

                    imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(resizedWaterm.Width + 1, resizedWaterm.Height)));
                    var filename = Path.GetFileName(img);

                    image.Save(outputFolder + "\\" + filename);

对于这些类型的图像,您需要做些什么吗???

1 个答案:

答案 0 :(得分:0)

“无法从具有索引像素格式的图像创建图形对象。”告诉自己。 GIF图像是基于调色板的,您的TIFF图像似乎也被编入索引(虽然有全彩色TIFF)。