知识屋:更实用的电脑技术知识网站
所在位置:首页 > 电脑软件 > 应用软件 > 压缩解压

截图图片压缩软件1.0 版【附源码】截图图片压缩软件1.0 版【附源码】官方下载

本地多线下载
共有次下载

截图图片压缩软件1.0 版【附源码】软件介绍 下载地址

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

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

    截图图片压缩软件是一款可以读取剪贴板中的图片,保存为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();

    }

    下载地址截图图片压缩软件1.0 版【附源码】官方下载64位下载地址

    极速下载

    极速下载一 极速下载二

    本地下载

    网通 电信