导读
易语言5.6完美版,可静态编译,绿色无后门

学习易语言 讲究的是系统,如果你正在四处闲逛,你懂的永远是皮毛! 觅风论坛正在为每个困惑的对易语言 详细

[源码] 任意图片转WEBP格式 源码分享 支出多线程

[复制链接]

微信扫一扫 分享朋友圈

fg6969j 发表于 2024-8-29 14:52:01 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
WEBP的压缩比例公认的牛,我这边现在远程协议用的就是这个压缩传输推送到WEB

調用方法簡單,直接传递图片字节集进去,然后返回压缩后的字节集。相比网上调用的DLL都是压缩到本地 这个好用多了,模块我写了两种方法 一个是直接DLL调用 一个是内存加载,内存加载的调用了凌哥的内存加载提取版 可以自行替换其他的




这是DLL的C++代码。 看得懂的自己改 看不懂的直接忽略

#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
#include "webp/encode.h"

// input_image 传入的图片数据
// input_size 传入的图片大小
// processed_data 返回处理过的数据 易语言里面调用需要传址
// processed_size 返回处理过图片大小
// Image_quality 图片质量
bool __stdcall SaveImageAsWebp(const char* input_image, size_t input_size, char** processed_data, size_t* processed_size, int Image_quality) {
    int width, height, channels;
    // 使用stb_image从字节数组中加载图像
    unsigned char* img_data = stbi_load_from_memory(reinterpret_cast<const uint8_t*>(input_image), static_cast<int>(input_size), &width, &height, &channels, 4);
    if (img_data == nullptr) {
       // std::cerr << "内存加载图像出错." << std::endl;
        return false;
    }

    // 编码图像为WEBP格式
    unsigned char* webp_data = nullptr;
    *processed_size = WebPEncodeRGBA(img_data, width, height, width * 4, Image_quality, &webp_data);
    if (*processed_size == 0) {
       // std::cerr << "将图像编码为WEBP格式时出错." << std::endl;
        stbi_image_free(img_data);
        return false;
    }

    // 将编码后的数据分配给processed_data
    *processed_data = reinterpret_cast<char*>(webp_data);



    // 释放img_data资源
    stbi_image_free(img_data);

    return true;
}

// 调用方在使用完processed_data后需要调用这个函数来释放资源
void __stdcall FreeWebpData(unsigned char** data) {
    if (data && *data) {
        free(*data);
        *data = nullptr; // 将指针设为nullptr,以防止重复释放
    }
}


QQ截图20240829151247.jpg


游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

精彩评论10

你大爷 发表于 2024-8-31 14:43:59 | 显示全部楼层
的法国风格化规范化
回复 支持 反对

使用道具 举报

啦啦啦啦啦啦 发表于 2024-9-2 14:35:58 | 显示全部楼层
感谢您的无私精神...
回复 支持 反对

使用道具 举报

yu2353173832 发表于 2024-9-4 14:27:56 | 显示全部楼层
路过还不错
回复 支持 反对

使用道具 举报

你大爷 发表于 2024-9-6 14:19:55 | 显示全部楼层
看帖子的要发表下看法
回复 支持 反对

使用道具 举报

1225061801 发表于 2024-9-8 14:11:53 | 显示全部楼层
碉堡了!
回复 支持 反对

使用道具 举报

a123354 发表于 2024-9-10 23:30:42 | 显示全部楼层
回复查看隐藏内容
回复 支持 反对

使用道具 举报

的含税单价 发表于 2024-9-13 08:49:31 | 显示全部楼层
豆腐干士大夫
回复 支持 反对

使用道具 举报

xiaojian 发表于 2024-9-15 18:08:20 | 显示全部楼层
看看,到底好不好,想学学看看
回复 支持 反对

使用道具 举报

毛泽东 发表于 2024-9-18 03:27:09 | 显示全部楼层
还是看不懂,复杂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1