当前位置: 首页 > news >正文

什么专业学做网站深圳平面设计

什么专业学做网站,深圳平面设计,玉林网站设计,商务网站的主要内容由于项目需要&#xff0c;需生成一幅纯马赛克的图像作为背景&#xff0c;经过多次测试成功&#xff0c;记录下来。 方法一&#xff1a;未优化方法 1、代码&#xff1a; #include <QImage> #include <QDebug> #include <QElapsedTimer>QImage generateMosa…

由于项目需要,需生成一幅纯马赛克的图像作为背景,经过多次测试成功,记录下来。

方法一:未优化方法

1、代码:

#include <QImage>
#include <QDebug>
#include <QElapsedTimer>QImage generateMosaic(int width, int height, int blockSize) {QImage image(width, height, QImage::Format_RGB888);if (blockSize <= 0) {return QImage(); // 返回空图片或处理错误}// 确保blockSize是偶数,并且不会使图像尺寸变得太小blockSize = (blockSize % 2 == 0) ? blockSize : blockSize + 1;if (image.width() < blockSize || image.height() < blockSize) {return image; // 如果blockSize太大,直接返回原图}// 计算新图片的尺寸int newWidth = image.width() / blockSize * blockSize;int newHeight = image.height() / blockSize * blockSize;qDebug() << "newWidth = " << newWidth << ", newHeight = " << newHeight;//QImage newImage(newWidth, newHeight, image.format());// 遍历每个块for (int x = 0; x < newWidth; x += blockSize) {for (int y = 0; y < newHeight; y += blockSize) {// 计算块的平均颜色QColor averageColor = QColor(0, 0, 0); // 初始化平均颜色为黑色// 用平均颜色填充整个块if((y / blockSize) % 2 == 0) {if((x/blockSize) % 2 == 0) {averageColor = QColor(60,60,60);} else {averageColor = QColor(150,150,150);}} else {if((x/blockSize) % 2 == 0) {averageColor = QColor(150,150,150);} else {averageColor = QColor(60,60,60);}}for  (int bx = 0; bx < blockSize && x + bx < newWidth; ++bx) {for ( int by = 0; by < blockSize && y + by < newHeight; ++by) {image.setPixel(x+bx, y+by, qRgb(averageColor.red(), averageColor.blue(), averageColor.green()));}}}}return image;
}int main()
{QElapsedTimer elapsed_timer; elapsed_timer.start(); QImage mosicImage = generateMosaic(1280,960,40);qDebug() << "Used" << elapsed_timer.elapsed() << "milliseconds.";mosicImage.save("mosic.jpg");return 0;
}

2、效果:

运行结果

newWidth =  1280 , newHeight =  960
Used 19 milliseconds.

方法二:优化后方法

更优化的方法:

1、代码

#include <QImage>
#include <QDebug>
#include <QPainter>
#include <QElapsedTimer>QImage generateMosaic(int width, int height, QImage::Format format)
{QColor color_a(102, 102, 102); QColor color_b(128, 128, 128);QImage empty_image(width, height, format);empty_image.fill(color_a);QPainter empty_painter(&empty_image);int stride = 32;for (int i=0; i<empty_image.width(); i+=stride) {for (int j=0; j<empty_image.height(); j+=stride) {if ((i+j) % (2*stride) == 0) {empty_painter.fillRect(QRect(i, j, stride, stride), color_b);} else {empty_painter.fillRect(QRect(i, j, stride, stride), color_a);}}}return empty_image;
}int main()
{QElapsedTimer elapsed_timer; elapsed_timer.start(); QImage mosicImage = generateMosaic(1280,960,QImage::Format_RGB888);qDebug() << "Used" << elapsed_timer.elapsed() << "milliseconds.";mosicImage.save("mosic.jpg");return 0;
}

2、效果

运行效果

Used 4 milliseconds.

http://www.yayakq.cn/news/963719/

相关文章:

  • 小白如何搭建个人网站九江做网站的
  • 网站开发毕业设计代做宝塔面板建设网站
  • 自己做的网站怎么接支付宝wordpress互访页面
  • 网站的程序怎么做的网站管理员权限设置
  • 苏州高端网站建设kgu网站跳转微信链接
  • 网站换网址了怎么找小语种外贸网站建设
  • 网站大学报名官网入口wordpress做的博客
  • 企业网站建设的三种方式永康市建设银行网站查询
  • 网站注册收入广西做网站建设的公司
  • 做设计有哪些好用的素材网站破解插件有后门wordpress
  • 桂林哪里可以做网站vs网站开发如何发布
  • html做的网站怎么发布wordpress媒体播放器
  • 怎么通过域名做网站汉化wordpress的软件
  • 怎样访问简版网站网站怎么解析
  • 网站的排名和什么因素有关系网站建设技术网站建设
  • 企业信息化建设网站ps教程自学网免费
  • 哈尔滨品牌网站建设wordpress工作机制
  • 免费推广网站入口202加强网站内容建设的意见
  • 网站所有权查询我对网站开发的反思
  • 滴滴优惠券网站怎么做阿坝网站制作
  • 设计构建网站河南建筑信息平台
  • 网站的收录率防恶意点击软件
  • 门户网站怎么做优化购物形式网站制作
  • 学勇建站网站策划步骤
  • 如何增加网站会员怎么用ps做简单网站
  • 重庆建站网站流程及费用深圳住房和建设局网站办事大厅
  • 京东网站建设的主旨广东省住房建设厅网站首页
  • wordpress后台排版全部乱济南网站优化排名
  • 开o2o网站需要什么手续crm订单管理系统
  • 专业医疗建站杭州精品网站建设