截取后:
想要截取保存任意形状图片,方法很简单:
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小时内删除。
留言与评论(共有 0 条评论) |