qt保存非矩形图片

阅读: 评论:0

qt保存非矩形图片

qt保存非矩形图片


截取后:

想要截取保存任意形状图片,方法很简单:
1.假设截取图形为多边形qpolygon0,
2.获取截取图形的外接矩形qrect0,先把原图截取rect0区域作为QImage1
3.然后把QImage1的图片中,在qpolygon0内的像素的alpha通道设置为255,在qpolygon0之外的像素的alpha通道设置为0即可。
4.保存的时候保存成PNG格式即可

核心代码如下:

QImage img = QImage(filename);//img为原图
img = vertToFormat(QImage::Format_RGBA8888_Premultiplied,Qt::NoFormatConversion);//首先要把img的格式设置为包含透明度的格式
QPainterPath path;
path.addEllipse(0,0,200,100);//path为多边形图形路径,这里假设添加了一个椭圆
for(int i =0;i<img.width();i++)
{for(int j=0;j<img.height();j++){QColor col = img.pixelColor(i,j);QPainterPath pathPoint = QPainterPath(QPointF(i,j));ains(pathPoint))//判断位置i,j是否在椭圆内{col.setAlpha(255);}else{col.setAlpha(0);}img.setPixelColor(i,j,col);//qDebug()<<i<<","<<j<<":"<<col<<endl;}
}
//test save pic
QString wstrFilePath = qApp->applicationDirPath() + "/savePic.png" ;
img.save(wstrFilePath,"PNG");

本文发布于:2024-02-02 02:37:58,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170681512340857.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:GMT 0083
标签:矩形   图片   qt
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23