对于基本问题,我很抱歉,我刚开始使用QImage从图像文件中读取像素数据。
为了理解成员函数,我尝试加载图像文件并尝试输出函数返回值:
QString fileName = "pic1.bmp";
QImage myImage;
myImage.load( fileName );
std::cout << "width = " << myImage.width() << std::endl;
std::cout << "height = " << myImage.height() << std::endl;
std::cout << "dotspermeterX = " << myImage.dotsPerMeterX() << std::endl;
std::cout << "dotspermeterY = " << myImage.dotsPerMeterY() << std::endl;
QRectF myRect = myImage.rect();
std::cout << "rect = " << myRect.bottomLeft().x() << "," << myRect.bottomLeft().y()
<< " " << myRect.topRight().x() << "," << myRect.topRight().y() << std::endl;
我得到的输出是:
width = 858
height = 608
dotspermeterX = 4724
dotspermeterY = 4724
rect = 0,608 858,0
我的问题是:
1. dots
和pixels
之间的区别是什么?
2. QImage仅适用于int
像素吗?我不能读取子像素数据以获得更好的精度吗?
为了澄清我的问题,以下是对角线的缩放位图图像,我想读取该行中的所有小像素/点。这可能吗?
答案 0 :(得分:2)
至于“每米点数”,您可能听说过“每英寸点数”(或DPI)。一样的。例如,如果你有一个水平分辨率为X像素的20英寸显示器,你将获得Y“每英寸点数”(或每英寸像素数)。如果您切换到40英寸显示器但具有相同的水平分辨率X,那么您有一半 DPI的数量,因为屏幕现在是两倍宽。因此DPI(或PPI)可以作为像素大小的测量值。
不,我非常怀疑QImage
是否支持子像素数据。