Читая этот пост, я решил изменить размер изображения на 1 пиксель, чтобы остановить контрабанду контента:
Загрузка изображений - проблемы безопасности
Но почему-то прозрачные гифки выходят с черным фоном. Это код:
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-файлов, сохраняя формат?