/*
**  功能             : 9格图处理
**  picName          : 图片名字
**  titleHeight      : 标题栏高度(单位:像素)
**  BorderLineWidth  : 边框宽度(单位:像素)
**  parent           : 带画背景的窗口句柄
**  返回值              :处理完成的图片
*/
QPixmap* NinePatch(QString& picName,int iHorzSplit,int iVertSplit, int DstWidth, int DstHeight)
{
    QPixmap* pix = new QPixmap(picName);
 
    int pixWidth = pix->width();
    int pixHeight = pix->height();
 
    QPixmap pix_1 = pix->copy(0, 0, iHorzSplit, iVertSplit);
    QPixmap pix_2 = pix->copy(iHorzSplit, 0, pixWidth-iHorzSplit*2, iVertSplit);
    QPixmap pix_3 = pix->copy(pixWidth-iHorzSplit, 0, iHorzSplit, iVertSplit);
 
    QPixmap pix_4 = pix->copy(0, iVertSplit, iHorzSplit, pixHeight-iVertSplit*2);
    QPixmap pix_5 = pix->copy(iHorzSplit, iVertSplit, pixWidth-iHorzSplit*2, pixHeight-iVertSplit*2);
    QPixmap pix_6 = pix->copy(pixWidth-iHorzSplit, iVertSplit, iHorzSplit, pixHeight-iVertSplit*2);
 
    QPixmap pix_7 = pix->copy(0, pixHeight-iVertSplit, iHorzSplit, iVertSplit);
    QPixmap pix_8 = pix->copy(iHorzSplit, pixHeight-iVertSplit, pixWidth-iHorzSplit*2, pixWidth - iHorzSplit*2);
    QPixmap pix_9 = pix->copy(pixWidth-iHorzSplit, pixHeight-iVertSplit, iHorzSplit, iVertSplit);
 
    pix_2 = pix_2.scaled(DstWidth-iHorzSplit*2,iVertSplit, Qt::IgnoreAspectRatio);//保持高度拉宽
    pix_4 = pix_4.scaled(iHorzSplit, DstHeight-iVertSplit*2, Qt::IgnoreAspectRatio);//保持宽度拉高
    pix_5 = pix_5.scaled(DstWidth-iHorzSplit*2,DstHeight-iVertSplit*2, Qt::IgnoreAspectRatio);
    pix_6 = pix_6.scaled(iHorzSplit, DstHeight-iVertSplit*2, Qt::IgnoreAspectRatio);//保持宽度拉高
    pix_8 = pix_8.scaled(DstWidth-iHorzSplit*2, iVertSplit);//保持高度拉宽
 
 
    QPixmap* resultImg =new QPixmap(DstWidth, DstHeight);
    QPainter* painter = new QPainter(resultImg);
    if (!resultImg->isNull()) {
        painter->drawPixmap(0,0,pix_1);
        painter->drawPixmap(iHorzSplit, 0, pix_2);
        painter->drawPixmap(DstWidth-iHorzSplit,0,pix_3);
 
        painter->drawPixmap(0, iVertSplit, pix_4);
        painter->drawPixmap(iHorzSplit, iVertSplit, pix_5);
        painter->drawPixmap(DstWidth-iHorzSplit, iVertSplit, pix_6);
 
        painter->drawPixmap(0, DstHeight-iVertSplit, pix_7);
        painter->drawPixmap(iHorzSplit, DstHeight-iVertSplit, pix_8);
        painter->drawPixmap(DstWidth-iHorzSplit, DstHeight-iVertSplit, pix_9);
        painter->end();
    }
    return resultImg;
}

Qt之九宫格图片处理相关推荐

  1. QT 生成九宫格 图片 - 带分割线

    先附上成果图: 附上代码 QtTools.h #pragma once#include <QtWidgets/QDialog> #include <QPixmap>#inclu ...

  2. qt for android 图片可拉伸,qt实现九宫格布局,图片拉伸

    在实现qt播放时,调用的mplayer,由于采用的是自定义绘图,用的是setAttribute(Qt::WA_TranslucentBackground);结果不能正常在上面显示播放画面,在默认皮肤下 ...

  3. 4、PPT图表的制作(制作九宫格图片、更好看的图表)

    1.顶级商业图表网站 (1)麦肯锡中国:https://www.mckinsey.com.cn/# (2)第一财经:https://www.cbnweek.com/ (3)网易数读:http://da ...

  4. python 还原九宫格图片_用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路 以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽&qu ...

  5. python语言编写一个生成九宫格图片的代码_用Python一键生成炫酷九宫格图片,火了朋友圈...

    作为一个男同胞来说,为了给女朋友拍一张美美的照片,着实需要花费很大的时间和精力,不仅仅需要从众多的图片中精心挑选,而且还需要有着超强的图片精修能力,才能得到一张张达到女友要求的图片,真心不容易啊- 朋 ...

  6. python把一堆图片分成n份,用Python一键生成炫酷九宫格图片,火了朋友圈

    原标题:用Python一键生成炫酷九宫格图片,火了朋友圈 作为一个男同胞来说,为了给女朋友拍一张美美的照片,着实需要花费很大的时间和精力,不仅仅需要从众多的图片中精心挑选,而且还需要有着超强的图片精修 ...

  7. python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果

    前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可. 说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使 ...

  8. python语言编写一个生成九宫格图片的代码_python实现图片九宫格分割

    大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做 ...

  9. linux qt显示gif图片,QT显示GIF图片

    在QT中要显示GIF图片,不能通过单单的添加部件来完成. 还需要手动的编写程序. 工具:QT Creator 新建一个工程,我们先在designer中,添加一个QLabel部件. 如下图: 将QLab ...

最新文章

  1. 苹果iPhone被曝跟踪用户位置信息(图)
  2. 3.1.10 OS之基本分段存储管理(段表、地址变换、信息共享)
  3. 两个特征是独立好还是正相关好_【概率论与数理统计】第5期:随机变量的数字特征...
  4. oracle用exp定时备份数据库,使用exp和imp对Oracle数据库进行简单的备份
  5. oracle日志不应用,dg报ORA-600日志不能应用
  6. keras系列︱keras是如何指定显卡且限制显存用量(GPU/CPU使用)
  7. win10键盘全变成快捷键_电脑键盘灵敏度设置方法
  8. 各大邮箱发送数量限制整理
  9. 微信小程序 上传身份证图像限制
  10. 计算机操作系统 电子科技大学 期末考试
  11. (一) odroid-xu4交叉编译过程
  12. 2019:自我觉醒的一年
  13. 福莱特法公式matlab,浙江省公路出行交通分布模型研究
  14. Windos系统使用webdav协议将阿里云盘挂载在本地,并实现Notability等支持webdav协议软件的自动备份
  15. 2017acl---An Unsupervised Neural Attention Model for Aspect Extraction笔记
  16. 论文笔记 | code pretraining(代码预训练系列)
  17. 关于28岁字节跳动程序员退休,看这一篇就够了
  18. matlab计算滤波器品质因数,滤波器品质因数概述
  19. 猜字游戏java_Java实现猜字小游戏
  20. Flex 日语全角半角转换

热门文章

  1. 2016年头条校招笔试题
  2. No suitable application records were found. Verify your bundle identifi
  3. 全球域名后缀注册量排行榜!
  4. 基于jsp毕业设计题目50例
  5. 销售人员如何利用好企业微信crm?
  6. iosetup mysql_InnoDB: Error: io_setup() failed with EAGAIN
  7. vmware虚拟机连接usb,显示:无法识别的usb设备,跟这台计算机连接的前一个usb设备工作不正常
  8. TOJ 5238: C实验:变量交换函数
  9. 南航数据分析与挖掘课设1(下)——基于多元线性回归模型,ARIMA序列的中国GDP增长影响因素研究及预测(R语言代码附录)
  10. zend guard loader php ts,安装Zend Guard Loader说明