项目链接:https://github.com/FFladenmuller/resize-bmp
代码适用于因子为1的调整大小。但是,如果尝试更大的因素并打开图像,照片会说:"看起来我们不支持这种文件格式" 。
我还没有在padding中添加,但我只处理了宽度可以被4整除的图像。
For循环将BGR字节添加到新图像:
for (int i = 54; i < oldBMP.Info.Count - 2; i += 3)
{
for(int j = 0; j < sizeMultiplier; j++)
{
newBMP.Info.Add(oldBMP.Info[i]);
newBMP.Info.Add(oldBMP.Info[i + 1]);
newBMP.Info.Add(oldBMP.Info[i + 2]);
}
}
首先通过循环来增加BGR三元组,第二个循环增加每个像素大小乘以多次。
答案 0 :(得分:1)
定义以下方法:
TypeError: Cannot read property 'content' of undefined
然后,在您的代码中,每当需要调整大小时:
public static Bitmap ResizeImage(Bitmap image, Size size)
{
try
{
Bitmap result = new Bitmap(size.Width, size.Height);
using (Graphics g = Graphics.FromImage((Image)result))
{
g.CompositingQuality = CompositingQuality.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.SmoothingMode = SmoothingMode.AntiAlias;
g.DrawImage(image, 0, 0, size.Width, size.Height);
}
return result;
}
catch
{
return image;
}
}
另一种选择(具有降低输出质量的缺点)如下:
Bitmap image = new Bitmap(@"C:\Path\MyImage.bmp");
Single scaleWidth = 1.2f;
Int32 targetWidth = (Int32)((Single)image.Width * scaleWidth);
Single scaleHeight = 1.0f;
Int32 targetHeight = (Int32)((Single)image.Height * scaleHeight);
Size size = new Size(targetWidth, targetHeight);
Bitmap imageResized = ResizeImage(image, size);