阅读这篇文章我选择通过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的大小?
答案 0 :(得分:0)
调整图像大小需要将其转换为全彩色,当您这样做时,调色板级透明度会丢失。
我建议在图像上添加1像素边框,并使用透明颜色进行边框填充。