当我尝试此代码,以调整图片的大小:C#一般性错误发生在GDI +保存图像
ConvertToBitmap(txtImage.Text);
private void ConvertToBitmap(string filename)
{
if (File.Exists(filename))
{
var origImg = System.Drawing.Image.FromFile(filename);
var widthDivisor = (double)origImg.Width/(double)900;
var heightDivisor = (double)origImg.Height/(double)750;
int newWidth, newHeight;
if (widthDivisor < heightDivisor)
{
newWidth = (int)((double)origImg.Width/widthDivisor);
newHeight = (int)((double)origImg.Height/widthDivisor);
}
else
{
newWidth = (int)((double)origImg.Width/heightDivisor);
newHeight = (int)((double)origImg.Height/heightDivisor);
}
var newImg = new Bitmap(newWidth, newHeight);
Graphics g = Graphics.FromImage(newImg);
g.DrawImage(origImg, new Rectangle(0, 0, newWidth, newHeight));
System.Drawing.Imaging.EncoderParameters encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
encoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)350);
newImg.Save(fullpath, GetImageCodeInfo("image/jpeg"), encoderParameters);
g.Dispose();
}
}
public static ImageCodecInfo GetImageCodeInfo(string mimeType)
{
ImageCodecInfo[] info = ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo ici in info)
if (ici.MimeType.Equals(mimeType, StringComparison.OrdinalIgnoreCase))
return ici;
return null;
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
它调整图像,但一些如何显示错误a generic error occurred in gdi+
。 欢迎任何额外的努力。
我把你的代码运行它,看看有什么错误时抛出,它跑了就好了我买了修改尺寸的输出中的图片是你的错误在你的代码的其他部分? – 2012-07-12 06:09:37
其实我知道,代码是在我的电脑做工精细..但我设置这种代码在其他电脑是通过错误 – 2012-07-12 06:15:48
时,图像的大小调整它保存在我的项目文件夹中。 @ArifEqbal – 2012-07-12 06:16:29