这两天想做一个五子棋游戏,想从零开始自己绘制各种图片素材,将经验心得整理如下。

制作透明背景图片:

void MyPainter::DrawKit()
{
QImage image(30, 30, QImage::Format_ARGB32);
memset(image.bits(), 0x00, image.byteCount()); // 绘制图片
QPainter painter(&image);
painter.setPen(QPen(Qt::red, 2, Qt::SolidLine));
painter.translate(15, 15); painter.drawLine(0-15, 0-15, 0-8, 0-15);
painter.drawLine(0+15, 0-15, 0+8, 0-15); painter.drawLine(0-15, 0+15, 0-8, 0+15);
painter.drawLine(0+15, 0+15, 0+8, 0+15); painter.drawLine(0-15, 0-15, 0-15, 0-8);
painter.drawLine(0+15, 0-15, 0+15, 0-8); painter.drawLine(0-15, 0+15, 0-15, 0+8);
painter.drawLine(0+15, 0+15, 0+15, 0+8); qDebug() << image.save("C:/Users/Mactarvish/Desktop/test2.png", "PNG"); }

首先创建一个颜色模式为ARGB32的QImage对象。创建完成后不要直接绘图,否则会在图片上产生由内存中的辣鸡数据引入的花点。解决方法是将QImage的RAW data 全部重写为0x00。

重写后再绘图,就是一张除了画出来的图形之外其他的区域全是透明的的图片了,最后执行save函数保存。

对图片的裁剪更为简单,直接调用QImage::copy()函数创建裁剪后的对象即可。

void MyPainter::CropImage()
{
QImage image("C:/Users/Mactarvish/Desktop/myPicture_v1.png");
QImage newImage = image.copy(90, 90, image.width()-90, image.height()-90);
qDebug() << newImage.save("C:/Users/Mactarvish/Desktop/CropedImage.png");
}
 

http://blog.csdn.net/qq_19672579/article/details/51050367

Qt 制作透明背景图片与裁剪图片(很实用)的更多相关文章

  1. Android调用相机实现拍照并裁剪图片,调用手机中的相冊图片并裁剪图片

    在 Android应用中,非常多时候我们须要实现上传图片,或者直接调用手机上的拍照功能拍照处理然后直接显示并上传功能,以下将讲述调用相机拍照处理图片然后显示和调用手机相冊中的图片处理然后显示的功能,要 ...

  2. iOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果

    一.转盘(裁剪图片.自定义按钮.旋转) 1.裁剪图片 将一张大图片裁剪为多张 // CGImageCreateWithImageInRect:用来裁剪图片 // image:需要裁剪的图片 // re ...

  3. Android 拍照图片选取与图片剪裁

    最近从以前的项目中扒下来一个常用的模块,在这里有必要记录一下的,就是android上获取图片以及裁剪图片,怎么样?这个功能是不是很常用啊,你随便打开一个App,只要它有注册功能都会有设置人物头像的功能 ...

  4. vc下打印透明背景图片

    一.前言 刚接到个任务,要把带有透明背景的章子图片打印出来,开始觉得不是很简单吗,直接用vc自动生成的打印功能不就ok了.不过问题却不是想像的那么简单! 二.窗口中显示透明图片 在窗口中显示图片,可以 ...

  5. php 处理透明背景的图片时的问题

    PHP图象处理之透明背景的gif和png图片的一些问题 1,直接读取有透明背景的PNG格式文件,然后直接输出,背景变成了黑色,gif则没有这种情况.   解决方法:使用 imagesavealpha ...

  6. QT制作一个图片播放器

    前言:使用qt制作了一个简单的图片播放器,可以播放gif.png等格式图片 先来看看播放器的功能(当然是很简陋的,没有很深入的设计): 1.点击图片列表中图片进行播放. 2.自动播放,播放的图片的间隔 ...

  7. 网页中PNG透明背景图片的完美应用

    PNG 图片在网站设计中是不可或缺的部分,最大的特点应该在于 PNG 可以无损压缩,而且还可以设置透明,对于增强网站的图片色彩效果有重要的作用. 但为什么 PNG 图片却没有 GIF 和 JPG 图片 ...

  8. VC++使用CImage PNG转BMP图片透明背景处理

    PNG格式的图片是支持透明通道的,BMP格式的图片是没有透明通道的,所以当PNG格式的图片转换为BMP格式时,对于PNG图片的透明背景就需要进行特别的处理. VC++中的HBITMAP是支持透明色的, ...

  9. C++ 设置透明背景图片

    背景:            有两个图片,一个是目标背景图片, 一个是带有自身背景色彩的彩色图片            先将这彩色图片绘制到目标背景图片中, 这一步通过BITBLT就可实现.   但实 ...

随机推荐

  1. 获取WebConfig 配置项的值

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...

  2. AJAX 相关笔记

    AJAX (Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)). 平时工作中使用ajax的频率挺高的,这里整理了一些ajax相关的小知识,后续 ...

  3. 一起学Python:TCP简介

    TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793 ...

  4. ant使用ssh和linux交互 如:上传文件

    http://jiajun.iteye.com/blog/741001 http://blog.csdn.net/xymyeah/article/details/4098073 http://blog ...

  5. Qt 学习: 视图选择 (QItemSelectionModel)

    博主QQ:1356438802 选择是视图中经常使用的一个操作.在列表.树或者表格中,通过鼠标点击能够选中某一项,被选中项会变成高亮或者反色.在 Qt 中,选择也是使用了一种模型.在 model/vi ...

  6. javaScript DOM编程经常使用的方法与属性

    DOM是Document Object Model文档对象模型的缩写.依据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你能够訪问页面其它的标准组件. Node接口的特性和方法 ...

  7. [NPM] Create a node script to replace a complex npm script

    In this lesson we will look at pulling out complex npm script logic into an external JavaScript file ...

  8. iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)

    iOS8.1 编译ffmpeg和集成第三方实现直播(监控类) http://www.mamicode.com/info-detail-476094.html 一,下载并在终端中运行脚本编译ffmpeg ...

  9. iOS项目中所有icon的尺寸以及命名

    一般icon以下几个: Icon.png – 57×57 iPhone (ios5/6) Icon@2x.png – 114×114 iPhone Retina (ios5/6) Icon-72.pn ...

  10. AppStoreID--安装URL--应用更新URL--应用评分URL

    #define AppStoreID @"987353224" //应用安装URL #define AppStoreInstallURLFormat @"https:// ...