助けが必要。特定の画像のサイズを変更したいのですが、このコードを実行すると {"GDI+ で一般的なエラーが発生しました"} というエラーが表示されます。
private void btnPic_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Images|*.bmp;*.jpg;*.gif|All files|*.*";
if (open.ShowDialog(this) == DialogResult.OK)
{
var image = Image.FromFile(open.FileName);
var newImage = ScaleImage(image, 300, 400);
newImage.Save(@open.FileName, ImageFormat.Png);
}
}
public static Image ScaleImage(Image image, int maxWidth, int maxHeight)
{
var ratioX = (double)maxWidth / image.Width;
var ratioY = (double)maxHeight / image.Height;
var ratio = Math.Min(ratioX, ratioY);
var newWidth = (int)(image.Width * ratio);
var newHeight = (int)(image.Height * ratio);
var newImage = new Bitmap(newWidth, newHeight);
Graphics.FromImage(newImage).DrawImage(image, 0, 0, newWidth, newHeight);
return newImage;
}