精易论坛

标题: pngquantDLL最优png压缩VC2019调用源码 [打印本页]

作者: tszc50    时间: 2023-10-31 00:31
标题: pngquantDLL最优png压缩VC2019调用源码

pngquantDLL是大名鼎鼎的PNG图片压缩命令行程序pngquant的源码编译的一个DLL库文件,主要是方便第三方程序集成使用;pngquant是一个命令行实用程序和一个用于有损压缩PNG图像的库。这种转换大大减少了文件大小(通常高达70%),并保持了alpha透明度。
/*

供DLL导出函数使用
输入参数:

quality:图片质量,保留

in_image:图像原始数据流

in_filesize:图像原始数据大小

out_image:输出图像数据流

out_filesize:输出图像数据大小

返回值:
成功0;失败1
*/


DllExport int dllpngquant_single(char* quality, unsigned char* in_image, long long in_filesize, unsigned char** out_image, long long* out_filesize)


[attach]1285627[/attach][attach]1285628[/attach]


附件上传不了,只能发网盘连接了

奶牛快传:https://cowtransfer.com/s/76d4c984574a45
口令:y3nnau

123网盘:https://www.123pan.com/s/hUtA-lZ1k.html
提取码:m4HY







作者: 嫂子    时间: 2023-10-31 00:32
附件都没有 调用鬼
作者: tszc50    时间: 2023-10-31 00:51
嫂子 发表于 2023-10-31 00:32
附件都没有 调用鬼

链接:https://pan.baidu.com/s/1dkb5eTgM2BXVDMarrFkpPg?pwd=7t0a
提取码:7t0a
作者: tszc50    时间: 2023-10-31 01:01
嫂子 发表于 2023-10-31 00:32
附件都没有 调用鬼

奶牛快传:https://cowtransfer.com/s/76d4c984574a45
口令:y3nnau

123网盘:https://www.123pan.com/s/hUtA-lZ1k.html
提取码:m4HY
作者: tszc50    时间: 2023-10-31 02:28
上传到论坛了

MFC_RunDll.rar (1.56 MB, 下载次数: 6)


作者: pipicool    时间: 2023-10-31 02:53
学习一下
作者: zaozi    时间: 2023-10-31 07:51
谢谢分享!
作者: 一指温柔    时间: 2023-10-31 08:27
谢谢分享!
作者: camingo    时间: 2023-10-31 08:38
用处很大吗?
作者: q1512960733    时间: 2023-10-31 09:19
没啥用这个
作者: bianyuan456    时间: 2023-10-31 12:25
已经顶贴,感谢您对论坛的支持!
作者: 胖虎O    时间: 2023-10-31 12:34
看看怎么样
作者: 布点脚本师    时间: 2023-10-31 13:05
libwebp.dll   看别人的程序 用这个压缩很强
作者: 嫂子    时间: 2023-10-31 13:17
返回值1 成功 但是没有返回数据~~~猜测DLL有点毛病
作者: 嫂子    时间: 2023-10-31 15:55
成功了。 但是有点奇怪。返回值
作者: 嫂子    时间: 2023-10-31 15:56
这DLL 大概率是有点毛病。不提供缓冲区 直接返回个内存   连续重入 大概会内存泄漏
作者: 清风徐来2    时间: 2023-10-31 17:17
感谢分享
作者: qqmqqg    时间: 2023-10-31 18:40
666666666666666
作者: tszc50    时间: 2023-10-31 19:01
嫂子 发表于 2023-10-31 15:56
这DLL 大概率是有点毛病。不提供缓冲区 直接返回个内存   连续重入 大概会内存泄漏 ...

大佬,成功了放论坛让大家都用下吧,谢谢!
作者: tszc50    时间: 2023-10-31 19:12
woaity123 发表于 2023-10-31 13:05
libwebp.dll   看别人的程序 用这个压缩很强

这个确实很强,可惜没有大佬分享代码
作者: 嫂子    时间: 2023-10-31 20:52
tszc50 发表于 2023-10-31 19:12
这个确实很强,可惜没有大佬分享代码
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
In字节集 
inlen长整数型 
Ret逻辑型 
输出结果字节集 
输出整数型 
输出长度长整数型 
' DllExport int dllpngquant_single(char* quality, unsigned char* in_image, long long in_filesize, unsigned char** out_image, long long* out_filesize)
In = 读入文件 (“D:\Download\MFC_RunDll\Release\image.png”)
inlen = 取字节集长度 (In)
Ret = dllpngquant_single (“”, In, inlen, 输出, 输出长度)
调试输出 (Ret, 输出, 输出长度)
输出结果 = 指针到字节集 (输出, 输出长度)
写到文件 (“D:\Download\MFC_RunDll\Release\ecall.png”, 输出结果)


i支持库列表   支持库注释   
spec特殊功能支持库



DLL申明

  
DLL命令名返回值类型公开备 注
dllpngquant_single逻辑型 
DLL库文件名:
pngquant.dll
在DLL库中对应命令名:
@dllpngquant_single
参数名类 型传址数组备 注
quality文本型
in_image字节集
in_filesize长整数型
out_image整数型
out_filesize长整数型



作者: 嫂子    时间: 2023-10-31 20:53
tszc50 发表于 2023-10-31 19:12
这个确实很强,可惜没有大佬分享代码

还有一点小问题  返回值是0  但是结果是对的。有输出。
这DLL是别人封装得把   大概率是由内存泄漏得。
频繁调用内存就会无限增长
作者: 396384183    时间: 2023-11-1 07:49
学习一下
作者: 一指温柔    时间: 2023-11-1 08:51
感谢分享,很给力!~
作者: tszc50    时间: 2023-11-1 11:29
本帖最后由 tszc50 于 2023-11-1 12:03 编辑
嫂子 发表于 2023-10-31 20:52
[e=4].版本 2
.支持库 spec

感谢大佬的代码,确实可以使用,不过好像确实有内存泄漏的问题,他原本的演示程序也有同样问题!


作者: tszc50    时间: 2023-11-1 11:44
嫂子 发表于 2023-10-31 20:53
还有一点小问题  返回值是0  但是结果是对的。有输出。
这DLL是别人封装得把   大概率是由内存泄漏得。
...

说明里写的好像返回值为0就是表示成功,1表示失败
作者: 嫂子    时间: 2023-11-1 14:04
tszc50 发表于 2023-11-1 11:29
感谢大佬的代码,确实可以使用,不过好像确实有内存泄漏的问题,他原本的演示程序也有同样问题!

...

肯定内存泄漏啊   缓冲区要由外部申请 传入 再由外部释放 才不会泄漏。
内部申请 又返回出来 DLL可不知道啥时候释放
作者: tszc50    时间: 2023-11-1 19:04
嫂子 发表于 2023-11-1 14:04
肯定内存泄漏啊   缓冲区要由外部申请 传入 再由外部释放 才不会泄漏。
内部申请 又返回出来 DLL可不知道 ...



他里面好像也没有提供释放的命令啊



作者: tszc50    时间: 2023-11-1 19:08
嫂子 发表于 2023-11-1 14:04
肯定内存泄漏啊   缓冲区要由外部申请 传入 再由外部释放 才不会泄漏。
内部申请 又返回出来 DLL可不知道 ...

大佬,有没有什么解决办法啊
作者: 嫂子    时间: 2023-11-1 21:03
tszc50 发表于 2023-11-1 19:08
大佬,有没有什么解决办法啊

调用原始得DLL就行了 不要用这个别人封装得呗
作者: 嫂子    时间: 2023-11-1 21:35
tszc50 发表于 2023-11-1 19:08
大佬,有没有什么解决办法啊

libimagequant  这就是原始得DLL  QQ就带了。你可以搜你自己电脑上肯定有
作者: gdhong    时间: 2023-11-1 22:22
嫂子 发表于 2023-11-1 21:35
libimagequant  这就是原始得DLL  QQ就带了。你可以搜你自己电脑上肯定有
查不到相应的函数
C:\Users\Administrator\Desktop\捕获4.PNG

作者: tszc50    时间: 2023-11-1 22:37
嫂子 发表于 2023-11-1 21:35
libimagequant  这就是原始得DLL  QQ就带了。你可以搜你自己电脑上肯定有

老大,麻烦发一个libimagequant的调用代码呗,我不会弄啊
作者: 嫂子    时间: 2023-11-2 00:49
tszc50 发表于 2023-11-1 22:37
老大,麻烦发一个libimagequant的调用代码呗,我不会弄啊

不弄  懒得弄 。我用不到
作者: 嫂子    时间: 2023-11-2 00:49
gdhong 发表于 2023-11-1 22:22
查不到相应的函数

这就是原始得DLL 调用即可
作者: tszc50    时间: 2023-11-2 01:10
嫂子 发表于 2023-11-2 00:49
不弄  懒得弄 。我用不到

大佬搞个bmp转webp的出来吧,那个压缩率似乎更高
作者: 嫂子    时间: 2023-11-2 01:17
tszc50 发表于 2023-11-2 01:10
大佬搞个bmp转webp的出来吧,那个压缩率似乎更高

不弄 你研究下把  我没有需求
作者: tszc50    时间: 2023-11-2 01:19
嫂子 发表于 2023-11-2 01:17
不弄 你研究下把  我没有需求

我太菜了,搞不出来,论坛好像以前也没有这方面的代码论坛转PNG的代码很多,但压缩率不高

作者: 嫂子    时间: 2023-11-2 01:24
tszc50 发表于 2023-11-2 01:19
我太菜了,搞不出来,论坛好像以前也没有这方面的代码论坛转PNG的代码很多,但压缩率不高
...

可以找人定制
作者: 一指温柔    时间: 2023-11-2 08:37
感谢分享
作者: 易造轮    时间: 2023-11-2 11:38
和tinify.cn对比怎样
作者: 杨明煜    时间: 2023-11-2 21:59
谢谢分享............
作者: tszc50    时间: 2023-11-3 03:29
易造轮 发表于 2023-11-2 11:38
和tinify.cn对比怎样

差不多的,
作者: 九霜    时间: 2023-11-4 19:10
感谢分享
作者: Ahiki    时间: 2023-11-5 00:06
感谢分享,很给力!
作者: 没事瞎琢磨    时间: 2023-11-6 08:16
感谢分享,很给力!~
作者: yl060814    时间: 2023-11-19 16:19
感谢分享
作者: a019872140    时间: 2024-3-23 20:09
内存严重泄露..........还是用libwep.dll安全




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4