按比例放大bmp文件

时间:2013-10-24 02:07:34

标签: file bmp

好吧,伙计们,我正在研究扩大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

我对此是正确的还是以不同的方式工作? 谢谢,我只需要了解它如何能够记下算法。

1 个答案:

答案 0 :(得分:1)

我基本上称这个图像调整大小的方法:“粗暴大小”或“图像缩放”

  1. 尺寸计算:

    原始图像尺寸: 3 x 2像素(总共6个像素)

      

    如果您将高度缩放2并将宽度缩放2

    最终图片尺寸: 6 x 4像素(共24像素)

  2. 实施:

    这是一个例子:
    比方说: AA = 3, AB = 2, AC = 6 BA = 6, BB = 4, BC = 24 scaleX = 2, scaleY = 2


  3.     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 );
            }
        }
    }
    

    算法图:

    enter image description here


    如果需要,将给出进一步的解释;) 在这里查看更多维基百科:http://en.wikipedia.org/wiki/Image_scaling