作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个 .png
具有透明背景的图像,我想找到非透明数据的边界框。使用嵌套 for
用 QImage.pixel()
循环痛苦地缓慢。 Qt 中是否有这样做的内置方法?
最佳答案
如果 pixel() 对您来说太慢,请考虑更有效的按行数据寻址,给定 QImage p:
int l =p.width(), r = 0, t = p.height(), b = 0;
for (int y = 0; y < p.height(); ++y) {
QRgb *row = (QRgb*)p.scanLine(y);
bool rowFilled = false;
for (int x = 0; x < p.width(); ++x) {
if (qAlpha(row[x])) {
rowFilled = true;
r = std::max(r, x);
if (l > x) {
l = x;
x = r; // shortcut to only search for new right bound from here
}
}
}
if (rowFilled) {
t = std::min(t, y);
b = y;
}
}
关于qt - Qt 有办法找到图像的边界框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720947/
我是一名优秀的程序员,十分优秀!