que tenía un problema similar en la actualidad, cuando yo estaba tratando de cambiar el tamaño de una imagen y luego la cosecha lo que sucedió es que utilicé este código para cambiar el tamaño de la imagen.
private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)size.Width/(float)sourceWidth);
nPercentH = ((float)size.Height/(float)sourceHeight);
if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
Y a continuación, el código para el cultivo ...
private static Image cropImage(Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
Entonces esta es la forma en que se llama el código de seguridad ...
Image img = Image.FromFile(@"C:\Users\****\Pictures\image.jpg");
img = ImageHandler.ResizeImage(img, new Size(400, 300));
img = ImageHandler.CropImage(img, new Rectangle(0, 25, 400, 250));
long quality = 90;
seguí recibiendo errores en el cultivo parte, el redimensionador funcionó bien!
Resulta que lo que sucedía dentro del resizer estaba arrojando errores en la función de recorte. Los cálculos redimensionados hacían que las dimensiones reales de la imagen fueran como 399 en lugar de 400 en las que pasé.
Entonces, cuando pasé en 400 como argumento para el cultivo, estaba tratando de recortar 399px imagen ancha con una anchura de 400px bmp y arrojó el error de memoria insuficiente!
La mayor parte del código anterior se encontró en http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing
¿La imagen que intenta cargar es excepcionalmente grande? – RCIX
Todas las imágenes son menos de ~ 700kb. – dooburt
¿Estás seguro de que el archivo en cuestión es un archivo de imagen válido? También me he encontrado exactamente en la misma situación, pero el archivo tampoco se ha podido cargar en ningún otro programa. –