Wir können ein wenig mehr umgebenden Code benötigen, oder weitere Informationen auf die genaue Art des Problems, aber ich vermute, dass die wahrscheinlichste Ursache für dieses Problem ist, was in ResizeImage geschieht.
Hier ist eine Funktion, die Größe System.Drawing.Image
, vielleicht geben Sie einen Versuch und sehen, ob es Ihr Problem behebt?
public static Image ResizeImage(int newWidth, int newHeight, Image image) {
int sourceWidth = image.Width;
int sourceHeight = image.Height;
//Consider vertical pics
if (sourceWidth < sourceHeight) {
int buff = newWidth;
newWidth = newHeight;
newHeight = buff;
}
int sourceX = 0, sourceY = 0, destX = 0, destY = 0;
float percent = 0, percentW = 0, percentH = 0;
percentW = ((float)newWidth/(float)sourceWidth);
percentH = ((float)newHeight/(float)sourceHeight);
if (percentH < percentW) {
percent = percentH;
destX = System.Convert.ToInt16((newWidth -
(sourceWidth * percent))/2);
} else {
percent = percentW;
destY = System.Convert.ToInt16((newHeight -
(sourceHeight * percent))/2);
}
int destWidth = (int)(sourceWidth * percent);
int destHeight = (int)(sourceHeight * percent);
Bitmap bitmap = new Bitmap(newWidth, newHeight,
PixelFormat.Format24bppRgb);
bitmap.SetResolution(image.HorizontalResolution,
image.VerticalResolution);
Graphics graphic = Graphics.FromImage(bitmap);
graphic.Clear(Color.Black);
graphic.InterpolationMode =
System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphic.DrawImage(image,
new Rectangle(destX, destY, destWidth, destHeight),
new Rectangle(sourceX, sourceY, sourceWidth, sourceHeight),
GraphicsUnit.Pixel);
graphic.Dispose();
image.Dispose();
return bitmap;
}
Hey Samuel und willkommen bei StackOverflow. Sie sollten uns ein wenig mehr Informationen über das Problem geben, etwa wenn es sich um einen Syntaxfehler handelt oder wenn das Bild einfach nicht erstellt wird. –
Bitte teilen Sie den Code für ResizeImage –
_Doesn't work_ ist keine hilfreiche Problembeschreibung! – TaW