请问有没有办法把gif格式的图片转换成jpg格式

slyly 2006-06-26 04:50:09
学习打水印程序时,出现“无法从带有索引像素格式的图像创建 Graphics 对象”这样的错误!查到这样一篇文章(http://blog.csdn.net/johnsuna/articles/722412.aspx),但看不懂。哪位高手帮帮忙啊!就只有那个gif图片不行!代码如下:

===========================================
/// <summary>
/// 打水印
/// </summary>
/// <param name="img">图片</param>
/// <param name="newfileName">打水印后新图片的保存路径</param>
/// <param name="watermarkString">水印文字</param>
/// <param name="StrFormat">对齐方式</param>
public static void Seal(System.Drawing.Image img,string newfileName,string watermarkString,StringFormat StrFormat)
{
//Bitmap bmp = new Bitmap(img.Width,img.Height,PixelFormat.Format8bppIndexed);
Graphics g = Graphics.FromImage(img);
g.DrawImage(img,0,0,img.Width,img.Height);

int[] sizes = new int[]{16,14,12,10,8,6,4};
Font font = null;
SizeF crSize = new SizeF();
for (int i=0 ;i<7; i++)
{
font = new Font("Verdana", sizes[i],
FontStyle.Bold);
crSize = g.MeasureString(watermarkString,font);

if((ushort)crSize.Width < (ushort)img.Width)
break;
}

RectangleF stringRec1,stringRec2;

if(StrFormat.Alignment == StringAlignment.Center)
{
stringRec1 = new RectangleF(1,1,img.Width-1,img.Height-1);
stringRec2 = new RectangleF(1,1,img.Width-3,img.Height-1);
}

else if(StrFormat.Alignment == StringAlignment.Near)
{
stringRec1 = new RectangleF(1,1,img.Width,img.Height-1);
stringRec2 = new RectangleF(2,2,img.Width,img.Height-1);
}
else
{
stringRec1 = new RectangleF(1,1,img.Width-1,img.Height-1);
stringRec2 = new RectangleF(1,1,img.Width-2,img.Height-1);
}

//***********************
// 两个Brush做出阴影效果
//***********************
//黑色
SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(153, 0, 0, 0));
g.DrawString(watermarkString,font,semiTransBrush2,stringRec1,StrFormat);
//高亮
SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(153, 255, 255, 255));
g.DrawString(watermarkString,font,semiTransBrush,stringRec2,StrFormat);
//***********************

g.Dispose();
img.Save(newfileName);
img.Dispose();
}
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dafeifei 2006-06-30
  • 打赏
  • 举报
回复
也有的,在另一个命名空间中,有关于 GIF图片的读取方法
shoushii 2006-06-27
  • 打赏
  • 举报
回复
Graphics g = Graphics.FromImage(img);是不能处理GIF格式的,(印象中)
你把母版图片换成BMP好了
slyly 2006-06-27
  • 打赏
  • 举报
回复
“母版图片”是别人上存的,我不能控制啊!大哥有没有办法执行这句Graphics g = Graphics.FromImage(img);之前转换一下,就是这句出错,很郁闷啊!
dafeifei 2006-06-27
  • 打赏
  • 举报
回复
保存的时候选 JPG格式就行了
img.Save(newfileName);这个方法应该有重载的。

Graphics g = Graphics.FromImage(img);是不能处理GIF格式的,(印象中)
你把母版图片换成BMP好了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧