3.2图像尺寸适应屏幕的放缩变换
近排的工作需要做一个屏幕显示针对图片的自适应,我就简单做了个算式求解。没有涉及什么图像优化,就是简单地坐标变换。
设屏幕的宽和高为xres(pixel)与yres(pixel),图像尺寸为info.width*info.height
在y轴存在比例rate_y=info.height/yres
在x轴存在比例rate_x=info.width/xres
若不考虑像素必须取整数单位,任意小的小数都能参与运算,则图像尺寸上的一个像点(X,Y)放缩到屏幕上的的对应点坐标(X',Y')为:
X/rate_x=X';
Y/rate_y=Y';
这是因为图像尺寸上的一点与屏幕尺寸上的一点的单位矢量之比为rate_x(X方向)与rate_y(Y方向)
则对于屏幕上的一点也同样按照相同的方法表示图像上的一点:
X'*rate_x=X;
Y'*rate_y=Y;
那么对于一种从屏幕宽度到高度的遍历循环则有每个对应的图像上一点的属性P在屏幕上的对应属性P'写成:
如果考虑像素的坐标只能取整数,则设有一个取整函数Fabs(),使得表达式写如:
对于像素的颜色属性,就是数值P表示的属性的一种特例,把它的数值往上带入P的表达式中即可。