好吧,伙计们,我正在研究扩大bmp文件的方法,但我对如何解决这个问题感到有些困惑。这就是我认为放大的方式:
假设我们有bmp文件:
0 1 2
3 4 5
一个3x2的2D数组,所以假设我们想要按2的比例放大这个图像,那么新的图像看起来像这样:
0 0 1 1 2 2
0 0 1 1 2 2
3 3 4 4 5 5
3 3 4 4 5 5
我对此是正确的还是以不同的方式工作? 谢谢,我只需要了解它如何能够记下算法。
答案 0 :(得分:1)
我基本上称这个图像调整大小的方法:“粗暴大小”或“图像缩放”
尺寸计算:
原始图像尺寸: 3 x 2像素(总共6个像素)
如果您将高度缩放2并将宽度缩放2
最终图片尺寸: 6 x 4像素(共24像素)
实施:
这是一个例子:
比方说: AA = 3, AB = 2, AC = 6 和 BA = 6, BB = 4, BC = 24 和 scaleX = 2, scaleY = 2
int ptotal = AC; //or = AA * AB
for (pcount = 0; pcount < ptotal; ++pcount)
{
img_x = (pcount%(AA))*scaleX;
if ((pcount%(scaleX))==0)
img_y += scaleY;
set_rect_BMP(bmp,img_x,img_y,scaleX,scaleY,r,g,b);
}
int set_rect_BMP(BMP* bmp, int x, int y, int w, int h, int r, int g, int b) {
int i, j;
for (i = y; i < h+y; ++i)
{
for (j = x; j < w+x; ++j)
{
BMP_SetPixelRGB( bmp, j, i, r, g, b );
//BMP_SetPixelRGB( bmp, the x coord, the y coord, red, green, blue );
}
}
}
算法图:
如果需要,将给出进一步的解释;) 在这里查看更多维基百科:http://en.wikipedia.org/wiki/Image_scaling