微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查QImage是否具有alpha通道

如何解决检查QImage是否具有alpha通道

| 我想知道我加载的“ 0”是否包含一个Alpha通道。我已经知道ѭ1可以告诉我我使用的图像格式是否支持alpha通道,但是有没有办法知道加载的图像中是否实际使用了该格式?     

解决方法

        这里有我的代码片段,用于检查是否确实使用了alpha。当图像位于ARGB32中时,此功能很有用。
bool useAlpha = false;
const uchar* pixelData = image.bits();
int bytes = image.byteCount();

for (const QRgb* pixel = reinterpret_cast<const QRgb*>(pixelData); bytes > 0; pixel++,bytes -= sizeof(QRgb)) {
    if (qAlpha(*pixel) != UCHAR_MAX) {
        useAlpha = true;
        break;
    }
}
还要记住,这里有format()方法。     ,        如果您将
QImage
加载为具有Alpha通道的格式,则
QImage
具有Alpha通道。 如果要检查带有alpha通道的图像中是否有任何像素实际上将任何像素设置为不透明以外的颜色,则可以尝试使用
QImage::createAlphaMask()
生成alpha蒙版并检查其像素值之类的方法。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。