2013-10-24 66 views
0

好的傢伙,我正在研究一種擴大bmp文件的方法,但是我對如何處理它有點困惑。這是我怎麼想的放大會去:按n比例放大bmp文件

比方說,我們有bmp文件:

0 1 2 
3 4 5 

一個3x2的二維數組,所以我們說,我們要以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

我基本調用此圖像大小調整方法: 「蠻力上漿」 或 「圖像縮放」

  1. 大小計算:

    原始圖像尺寸: 3×2象素(總6個像素)

    如果您將高度縮放2,寬度由2

    最終圖像尺寸: 6×4像素(共24個像素)

  2. 實現:

    這裏是一個例子:
    可以說: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); 
     } 
    } 
} 

圖的算法:

enter image description here


如果需要

進一步的解釋從略) 看到更多關於維基百科這裏:http://en.wikipedia.org/wiki/Image_scaling