1、在窗体中添加一个label和三个按钮,label用来显示图片,存储base64按钮:将图片编码为base64字符串。
2、在构造函数中读取图片,然后显示在label上,显示效果如下图。
3、将图片保存为base64,主要用到了QPixmap的save函数。
4、base64的图片数据如下。字符串较长,这里只显示前面的一部分。可以将该字符串保存到文件中,这里只做演示,没有保存到文件
5、清空图片按钮及运行后的界面。
没太看懂题主的意思,按我的理解是将图片完全显示在QGraphicsView可视范围内。可以通过在QGraphicsScene中缩放图片实现。
具体代码我没有整理,比较多,这里就给个简单说明:
首先要获取View的可视范围:
QSize size=ui->view->maximumViewportSize()再获取图片的大小
QGraphicsPixmapItem *a_pixmap_item = new QGraphicsPixmapItem(QPixmap::fromImage(an_image))
a_pixmap_item->sceneBoundingRect()
QRectF origin_rect= a_pixmap_item->boundingRect()
为了让图片完全显示在屏幕区域内,选择合适的比例
float wRatio=size.width()/origin_rect.width()float hRatio=size.height()/origin_rect.height()
float scaling=(wRatio < hRatio)?wRatio:hRatio
再缩放图片和场景
a_pixmap_item->setScale(scaling)scene->setSceneRect(r)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)