博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QT 数字图像处理 笔记一
阅读量:5235 次
发布时间:2019-06-14

本文共 1290 字,大约阅读时间需要 4 分钟。

1.被有符号整数和无符号整数十足的坑了一上午。我在实现图像旋转的时候先把坐标轴中心平移到图像中心:painter.translate(up_x+temp_w,up_y+temp_h);注意这里面各个数都是32位无符号整数。在旋转完整后,我希望把坐标轴归位,就直接用了painter.translate(-(up_x+temp_w),-(up_y+temp_h))。于是就在这里被坑了,两个无符号整数相加还是无符号整数,如果直接在前面加个负号的话就是求补了,得到这个数绝对不是原来数的相反数,所以坐标轴就不知道被移到哪里去了,图像自然就显示不出来。最后,简单总结一下,QT实现图像旋转的代码:

 

void MainWindow::paintEvent(QPaintEvent *e){        QPainter painter(this);        //QImage image = QImage(filename_png,0);        QImage image = QImage(png_data,width,height,QImage::Format_ARGB32);        if(rotate2)        {            quint32 temp_w = width/2;            quint32 temp_h = height/2;            painter.translate(up_x+temp_w,up_y+temp_h);            painter.rotate(angel);            qint32 temp1 = -(up_x+temp_w);            qint32 temp2 = -(up_y+temp_h);            painter.translate(temp1,temp2);        }        painter.drawImage(up_x,up_y,image);}

 2.QMessageBox最简单用法:

1 //在头文件里面包含这几行,使得QMessageBox里面的中文正常显示,在头文件里面还要包含#include"qtextcodec.h" 2 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));3     QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));4     QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QMessageBox::warning(this, "警告","请先选择裁剪区域!",QMessageBox::Yes);

 

 

 

转载于:https://www.cnblogs.com/sunshineatnoon/p/3700433.html

你可能感兴趣的文章
JDK安装与环境变量配置
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
Cocos2d-x官方在线视频-Cocos2d-x3.2《2048》手游开发揭秘
查看>>
print横向打印数据
查看>>
APP上架流程
查看>>
虚拟机出现“操作文件.PhysicalDrive1失败”的解决方法
查看>>
虚拟交换系统-VSS
查看>>
UNL/EVE关联putty和wireshark
查看>>
考研数据结构-顺序表(基本操作)
查看>>
14_01__shmGetZ
查看>>
ant-design学习准备_1
查看>>
Win7 IIS7.5+PHP Manager安装配置PHP5+Mysql教程
查看>>
工具-VS常用快捷键
查看>>
牛客 216D 消消乐 (二分图最小点覆盖)
查看>>
详解Linux服务器最大tcp连接数
查看>>
python基础1
查看>>
网络流24题之深海机器人问题
查看>>
python通过SSH登陆linux并操作
查看>>
(转)c++中ertern 用法简记
查看>>