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

有什么可以做兼职的网站吗网络运维工程师简历怎么写

有什么可以做兼职的网站吗,网络运维工程师简历怎么写,关键词竞价排名,wordpress的功能总第50篇平时我们在工作和学习的过程中#xff0c;有时需要将桌面的某些动作截图生成gif动图#xff0c;以更生动地呈现出来。目前有很多这样的软件#xff0c;并且方便易使用#xff0c;比如我经常使用的GifCam#xff0c;软件小巧#xff0c;生成的图片文件也比较小有时需要将桌面的某些动作截图生成gif动图以更生动地呈现出来。目前有很多这样的软件并且方便易使用比如我经常使用的GifCam软件小巧生成的图片文件也比较小非常优秀。它的界面如下图所示这里绝不是打广告呀。 那么这种截图后生成gif文件是如何用软件实现的呢本文将详细说明一下这种功能的实现思路作为软件设计的一种参考也方便在以后的工程项目中借鉴与参照。1.多张image图片处理成gif图片的实现 这个可以借助gif开源的类来实现直接调用其中的方法可以实现将多张图片合并到一张gif图片中去并且这个类还是跨平台的方便在多平台上实现。这里列举几个要用到的接口的实现详细的接口实现请查看完整的开源类文件若找不到可以联系我问我要。struct GifWriter { //这个是写gif的结构体定义FILE *f;uint8_t *oldImage;bool firstFrame;}; //开始生成gif文件的接口bool GifBegin( GifWriter *writer, const char *filename,uint32_t width, uint32_t height,uint32_t delay, int32_t bitDepth 8,bool dither false ){(void)bitDepth;(void)dither; // Mute Unused argument warnings #if defined(_MSC_VER) (_MSC_VER 1400)writer-f 0;fopen_s(writer-f, filename, wb); #elsewriter-f fopen(filename, wb); #endifif(!writer-f) {return false;}writer-firstFrame true;// allocatewriter-oldImage (uint8_t *)GIF_MALLOC(width * height * 4);fputs(GIF89a, writer-f);// screen descriptorfputc(width 0xff, writer-f);fputc((width 8) 0xff, writer-f);fputc(height 0xff, writer-f);fputc((height 8) 0xff, writer-f);fputc(0xf0, writer-f); // there is an unsorted global color table of 2 entriesfputc(0, writer-f); // background colorfputc(0, writer-f); // pixels are square (we need to specify this because its 1989)// now the global palette (really just a dummy palette)// color 0: blackfputc(0, writer-f);fputc(0, writer-f);fputc(0, writer-f);// color 1: also blackfputc(0, writer-f);fputc(0, writer-f);fputc(0, writer-f);if( delay ! 0 ) {// animation headerfputc(0x21, writer-f); // extensionfputc(0xff, writer-f); // application specificfputc(11, writer-f); // length 11fputs(NETSCAPE2.0, writer-f); // yes, reallyfputc(3, writer-f); // 3 bytes of NETSCAPE2.0 datafputc(1, writer-f); // JUST BECAUSEfputc(0, writer-f); // loop infinitely (byte 0)fputc(0, writer-f); // loop infinitely (byte 1)fputc(0, writer-f); // block terminator}return true;}//向gif文件生成过程中写入一帧数据的接口bool GifWriteFrame( GifWriter *writer, const uint8_t *image,uint32_t width, uint32_t height,uint32_t delay, int bitDepth 8, bool dither false ){if(!writer-f) {return false;}const uint8_t *oldImage writer-firstFrame ? NULL : writer-oldImage;writer-firstFrame false;GifPalette pal;GifMakePalette((dither ? NULL : oldImage), image, width, height, bitDepth, dither, pal);if(dither) {GifDitherImage(oldImage, image, writer-oldImage, width, height, pal);} else {GifThresholdImage(oldImage, image, writer-oldImage, width, height, pal);}GifWriteLzwImage(writer-f, writer-oldImage, 0, 0, width, height, delay, pal);return true;} 2.定时生成图片并记录图片用定时器的singleShot()定时截取桌面的的一帧帧图片将图片保存处理后送入到gif的GifWriteFrame() 接口生成相应的动图。这里关键在于从桌面上获取截图要用到grabWindow()这个接口函数。 对于Qt5以前和版本 这个接口函数是放在QPixmap中获取的图片也是QPixmap格式的。对于Qt5以上的版本这个接口是单独放进了一个类这个类叫QScreen获取的图片也是QPixmap格式的。其关键的两个函数代码示例如下//从桌面截图并帧写入到gif中 void GifWidget::saveImage() {if (!gifWriter) {return;}QScreen *screen QApplication::primaryScreen();QPixmap pix screen-grabWindow(0, x() rectGif.x(), y() rectGif.y(), rectGif.width(), rectGif.height());QImage image pix.toImage().convertToFormat(QImage::Format_RGBA8888);gif.GifWriteFrame(gifWriter, image.bits(), rectGif.width(), rectGif.height(), fps); } //点击开始录制时打开定时器触发槽函数 void GifWidget::record() {if (btnStart-text() 开始) {if (0 ! gifWriter) {delete gifWriter;gifWriter 0;}//确定gif文件的保存位置fileName QFileDialog::getSaveFileName(this, 选择保存位置, qApp-applicationDirPath() /, gif图片(*.gif));if (fileName.isEmpty()) {return;}int width txtWidth-text().toInt();int height txtHeight-text().toInt();fps txtFps-text().toInt();gifWriter new Gif::GifWriter;bool bOk gif.GifBegin(gifWriter, fileName.toLocal8Bit().data(), width, height, fps);if (!bOk) {delete gifWriter;gifWriter 0;return;}count 0;labStatus-setText(开始录制...);btnStart-setText(停止);//延时启动timer-setInterval(1000 / fps);QTimer::singleShot(1000, timer, SLOT(start()));} else {timer-stop();gif.GifEnd(gifWriter);delete gifWriter;gifWriter 0;labStatus-setText(QString(录制完成 共 %1 帧).arg(count));btnStart-setText(开始);QDesktopServices::openUrl(QUrl(fileName));} } 其程序运行的结果如下图所示总起来说整个功能的实现分为两步第一是定时从桌面获取截图图片第二是将这些图片按帧组合成gif文件。 程序的实现只是一种参考希望对你有参考意义。本文到此结束如果对你有帮助请随手 点赞 或 点喜欢关注本专栏更多干货与你分享。欢迎【关注、私信 武三郎】。我们一起交流一起进步。
http://www.sadfv.cn/news/66952/

相关文章:

  • 用html做一号店网站怎么做建设网站建设什么挣钱
  • 电子商务网站建设的步骤一般为网站建设的实训报告的实训感受
  • 地方网站域名wordpress2018版本
  • 成都品牌设计网站像优酷平台网站是怎么做的
  • 高中毕业学网站开发个人备案的网站涉及到资金
  • 检测网站速度郑州网站建设彳汉狮网络
  • 网站点击量作用机票酒店 网站建设
  • 南山制作网站二级网站建设要求
  • 小公司做网站还是微博个人建站哪类站赚钱
  • 又一个wordpress广州网站优化网站
  • 如何能进深圳好的设计公司网站360搜索优化
  • 利用access数据库做网站敬请期待英语
  • 关于做ppt的网站有哪些内容网站建设请示
  • 网页制作及网站建设php p2p网站开发
  • 医疗网站建设策划欧洲手表网站
  • asp手机网站开发教程沃尔玛网上商城是正品吗
  • 广东企业网站建设价格网站ww正能量
  • 做户外运动的网站网站规划建设实训报告
  • 深圳美食教学网站制作网站策划岗位职责
  • 网站logo修改本机电脑怎么做网站
  • php网站制作商品结算怎么做网站怎么做图片放映效果
  • 小说网站有源码了该怎么做工程建设网站策划方案
  • 做分析图的网站赤峰建设业协会的官方网站
  • html网站简易模板洛阳尚贤网络科技有限公司
  • 贵州能源网站 中企动力建设外贸网络推广公司
  • 做百度糯米网站的团队工商核名官网
  • 西宁做网站哪家好wordpress支持微信登录
  • 阿里云建站费用微信朋友圈广告投放
  • 长春网站建设哪家好discuz社区动力
  • 南宁网站制作费用国外外贸网站