[急救!]C#图像缩放算法问题
要求是这样的:
输入一个图片,获得转换成为指定大小的图片
我写的函数如下:
private System.Drawing.Bitmap ResizeBMP(System.Drawing.Bitmap source_bmp,int new_width,int new_height)
{
float x_rate=source_bmp.Width/new_width;
float y_rate=source_bmp.Height/new_height;
System.Drawing.Bitmap cache_bmps=new Bitmap(new_width,new_height,PixelFormat.Format24bppRgb);
for(int cy=0;cy<new_height;cy++)
{
for(int cx=0;cx<new_width;cx++)
{
cache_bmps.SetPixel(cx,cy,source_bmp.GetPixel((int)((cx+1)*x_rate-1),(int)((cy+1)*y_rate-1)));
}
}
return cache_bmps;
}
函数执行起来倒是没有问题
但是生成的图片总是只有原图片的一部分被选取
难道x_rate,y_rate太小了?请各位高手指教。