3.2圖像尺寸適應(yīng)屏幕的放縮變換
近排的工作需要做一個(gè)屏幕顯示針對圖片的自適應(yīng),我就簡單做了個(gè)算式求解。沒有涉及什么圖像優(yōu)化,就是簡單地坐標(biāo)變換。
設(shè)屏幕的寬和高為xres(pixel)與yres(pixel),圖像尺寸為info.width*info.height
在y軸存在比例rate_y=info.height/yres
在x軸存在比例rate_x=info.width/xres
若不考慮像素必須取整數(shù)單位,任意小的小數(shù)都能參與運(yùn)算,則圖像尺寸上的一個(gè)像點(diǎn)(X,Y)放縮到屏幕上的的對應(yīng)點(diǎn)坐標(biāo)(X',Y')為:
X/rate_x=X';
Y/rate_y=Y';
這是因?yàn)閳D像尺寸上的一點(diǎn)與屏幕尺寸上的一點(diǎn)的單位矢量之比為rate_x(X方向)與rate_y(Y方向)
則對于屏幕上的一點(diǎn)也同樣按照相同的方法表示圖像上的一點(diǎn):
X'*rate_x=X;
Y'*rate_y=Y;
那么對于一種從屏幕寬度到高度的遍歷循環(huán)則有每個(gè)對應(yīng)的圖像上一點(diǎn)的屬性P在屏幕上的對應(yīng)屬性P'寫成:
如果考慮像素的坐標(biāo)只能取整數(shù),則設(shè)有一個(gè)取整函數(shù)Fabs(),使得表達(dá)式寫如:
?對于像素的顏色屬性,就是數(shù)值P表示的屬性的一種特例,把它的數(shù)值往上帶入P的表達(dá)式中即可。
標(biāo)簽: