我已经实现了一个在c#(缩放)中垂直调整图像大小的功能。它需要两个参数:要调整大小的图像和图像的新高度。这是我的代码:
public static Bitmap ScaleUpDown(Bitmap b, int height)
{
Bitmap scaledImage = new Bitmap(b.Width, height);
int scaleRatio = height / b.Height;
if (scaleRatio >= 1)
{
for (int i = 0; i < b.Width; i++)
{
for (int j = 0; j < b.Height; j++)
{
Color pixel = b.GetPixel(i, j);
int fill = 0;
while (fill < scaleRatio)
{
scaledImage.SetPixel(i, scaleRatio * j + fill, pixel);
fill++;
}
}
}
}
return scaledImage;
}
以下是我的操作:我访问每个像素,复制并将其粘贴到同一列或列中的下一行,具体取决于调整大小的比例。我的问题是,只有当新高度是旧高度的倍数时,此代码才能正常工作,例如2 * oldHeight,3 * oldHeight等。如果新高度应该是旧高度的1.5倍或1.3倍怎么办?我该怎么办?
由于