【发布时间】:2012-02-09 12:58:00
【问题描述】:
阅读这篇文章后,我选择将图像大小调整 1px 以阻止内容走私攻击:
Image Uploading - security issues
但出于某种原因,透明 gif 会出现黑色背景。这是代码:
Bitmap FullsizeImage = (Bitmap)System.Drawing.Image.FromStream(OriginalFile);
//FullsizeImage.MakeTransparent(Color.Transparent);
int NewWidth = FullsizeImage.Width - 1;
int NewHeight = FullsizeImage.Height * NewWidth / FullsizeImage.Width;
Bitmap CroppedImage = new Bitmap(NewWidth, NewHeight);
Graphics g = Graphics.FromImage(CroppedImage);
g.DrawImage(FullsizeImage, new Rectangle(0, 0, FullsizeImage.Width, FullsizeImage.Height));
CroppedImage.Save(ImagePath, FullsizeImage.RawFormat);
g.Dispose();
CroppedImage.Dispose();
FullsizeImage.Dispose();
我尝试使用 FullsizeImage.MakeTransparent(Color.Transparent) 但这会将图像转换为 png 并且我想保留原始格式。
我的最终目的是避免可能的攻击,所以关于如何以不同的方式执行此操作而不是调整大小的任何想法?或者任何人都有通过保持格式实际调整透明 gif 大小的代码?
【问题讨论】:
标签: .net image security image-processing