东坡下载:内容最丰富最安全的下载站!

帮助|文件类型库|最新更新|下载分类|排行榜

图像处理图像浏览图像捕捉动画相关图标相关专业制图Photoshop草图大师coreldrawautocad光影魔术手美图秀秀

首页图文处理图像处理 → 截图图片压缩软件 1.0 绿色版【附源码】

截图图片压缩软件

截图图片压缩软件1.0 绿色版【附源码】

  • 大小:24.8M
  • 语言:中文
  • 平台:win7, WinAll
  • 更新:2015-07-17 14:45
  • 等级:
  • 类型:图像处理
  • 网站:http://www.uzzf.com
  • 授权:免费软件
  • 厂商:
  • 产地:国产软件
好用好玩 50%(0)
坑爹 坑爹 50%(0)
软件介绍软件截图相关软件软件教程网友评论下载地址

截图图片压缩软件是一款可以读取剪贴板中的图片,保存为png文件,调用pngquant来压缩成新的png,把压缩后的png文件的路径写入剪贴板(相当于在资源管理器中对这个文件做“复制”操作)。还能将带有复杂参数的淘宝链接简化为只保留宝贝ID 的链接工具。东坡小编带附上此软件的源码,有需要反欢迎下载!

怎么用

截图图片压缩软件使用方法

用各种截屏软件截屏到剪贴板,运行这个小程序,在需要粘贴的地方粘贴。

这个小程序是不后台运行的,运行完就退出。运行方法可以是用各种快捷运行工具比如"WIN+R"、“ALTRUN”等,也可以创建exe的快捷方式,在属性里添加全局快捷键。

这个小程序还有一个附加功能,就是运行时也会从剪贴板读取文本,如果是淘宝或天猫的URL就会简化URL,去掉spm等参数,只保留id参数。这是我整理购物清单时需要用的功能,因为只有几行代码,同时也需要做剪贴板操作,就和上面的程序合体了。

截图图片压缩软件程序源码

#include "mainwindow.h"

#include <QApplication>

#include <QtGui>

#include <QMessageBox>

#include <QMimeData>

#include <QDebug>

#include <string.h>

#include <windows.h>

#include <shlobj.h>

//复制文件到剪贴板

//没有加入错误判断,请自行修改

int CopyFileToClipboard(const char szFileName[])

{

UINT uDropEffect;

HGLOBAL hGblEffect;

LPDWORD lpdDropEffect;

DROPFILES stDrop;

HGLOBAL hGblFiles;

LPSTR lpData;

uDropEffect = RegisterClipboardFormatA("Preferred DropEffect");

hGblEffect = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE,sizeof(DWORD));

lpdDropEffect = (LPDWORD)GlobalLock(hGblEffect);

*lpdDropEffect = DROPEFFECT_COPY;//复制; 剪贴则用DROPEFFECT_MOVE

GlobalUnlock(hGblEffect);

stDrop.pFiles = sizeof(DROPFILES);

stDrop.pt.x = 0;

stDrop.pt.y = 0;

stDrop.fNC = FALSE;

stDrop.fWide = FALSE;

hGblFiles = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE,\

sizeof(DROPFILES)+strlen(szFileName)+2);

lpData = (LPSTR)GlobalLock(hGblFiles);

memcpy(lpData,&stDrop,sizeof(DROPFILES));

strcpy(lpData+sizeof(DROPFILES),szFileName);

GlobalUnlock(hGblFiles);

OpenClipboard(NULL);

EmptyClipboard();

SetClipboardData(CF_HDROP,hGblFiles);

SetClipboardData(uDropEffect,hGblEffect);

CloseClipboard();

return 1;

}

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

//MainWindow w;

//w.show();

//从剪贴板中读取图片并保存为png图片

QImage myImage1=QImage(QApplication::clipboard()->image());

if(myImage1.isNull()) {

QString str = QApplication::clipboard()->text();

qDebug() << str;

if(str.left(7)=="http://"){

str = str.mid(7);

}

int istaobaourl=0;

if(str.left(25)=="item.taobao.com/item.htm?"){

str = str.mid(25);

qDebug()<<str;

QStringList slist = str.split('&');

for(int i=0;i<slist.size();i++){

qDebug() << slist[i];

if(slist[i].startsWith("id=")){

str="http://item.taobao.com/item.htm?"+slist[i];

qDebug() << str ;

QApplication::clipboard()->setText(str);

istaobaourl=1;

}

}

}

else if(str.left(26)=="detail.tmall.com/item.htm?"){

str = str.mid(26);

qDebug()<<str;

QStringList slist = str.split('&');

for(int i=0;i<slist.size();i++){

qDebug() << slist[i];

if(slist[i].startsWith("id=")){

str="http://detail.tmall.com/item.htm?"+slist[i];

qDebug() << str ;

QApplication::clipboard()->setText(str);

istaobaourl=1;

}

}

}

if(istaobaourl==1){

QMessageBox::information(NULL, "淘宝URL简化成功",str);

return 0;

}

else{

QMessageBox::information(NULL, "出错了","未能从剪贴板中读取图片或淘宝URL");

return -1;

}

}

myImage1.copy().save("temp.png");

//调用pngquant压缩图片

QProcess p(0);

p.start("pngquant.exe --force --verbose --ordered --speed=1 --quality=50-90 temp.png");

p.waitForStarted();

p.waitForFinished();

/*

//把压缩后的图片写入剪贴板中

QImage myImage2("temp-or8.png");

QApplication::clipboard()->clear();

QApplication::clipboard()->setImage(myImage2);

myImage1=QImage(QApplication::clipboard()->image());

*/

//读取原图片大小

QFile file0("temp.png");

if (!file0.open(QIODevice::ReadOnly)){

QMessageBox::information(NULL, "出错了","未能读取原图片");

return -2;

}

qint64 filesize0 = file0.size();

file0.close();

//读取压缩后图片大小

QFile file1("temp-or8.png");

if (!file1.open(QIODevice::ReadOnly)) {

QMessageBox::information(NULL, "出错了","未能读取压缩后的图片");

return -3;

}

qint64 filesize1 = file1.size();

file1.close();

QDir temDir("temp-or8.png");

QString absDir = temDir.absolutePath();

qDebug()<<absDir;

std::string sstr = absDir.toStdString();

const char* ch = sstr.c_str();

CopyFileToClipboard(ch);

//根据原文件大小自动匹配单位

QString fs0,fs1,str;

if(filesize0<1024) {

fs0.sprintf("%d 字节",(int)filesize0);

fs1.sprintf("%d 字节",(int)filesize1);

}

else if(filesize0<1024*1024){

fs0.sprintf("%.1f KB",(float)filesize0/1024);

fs1.sprintf("%.1f KB",(float)filesize1/1024);

}

else{

fs0.sprintf("%.1f MB",(float)filesize0/1024/1024);

fs1.sprintf("%.1f MB",(float)filesize1/1024/1024);

}

//计算压缩比,根据文件大小的方式或许有问题,尤其是对于很小的图片会出现大于100%的压缩比。

str.sprintf("%.1f%%",(float)filesize1*100/(float)filesize0);

str="截图压缩成功,原图片大小为 "+fs0+",压缩后图片大小为 "+fs1+",压缩率为 "+str+" ,压缩后的图片已经写入剪贴板中。";

QMessageBox::information(NULL, "截图压缩成功", str);

return 0;//a.exec();

}

PC官方
安卓官方手机版
IOS官方手机版

截图图片压缩软件截图

下载地址

截图图片压缩软件 1.0 绿色版【附源码】

热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

编辑推荐

报错

请简要描述您遇到的错误,我们将尽快予以修正。

转帖到论坛
轮坛转帖HTML方式

轮坛转帖UBB方式