IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> C# 下 Webp格式转jpg格式详解 -> 正文阅读

[开发测试]C# 下 Webp格式转jpg格式详解

背景:项目中商品上传的功能需要对excel中的图片链接进行等比例裁剪(生成大中小图)并保存到图片空间,我是使用base64传输的,然后最近发现webp格式的图片能传过去,但是对保存的图片进行编辑的时候Image.FromFile(originalImagePath)报了个内存不足的错误,发现原始图片确实保存到图片空间了,但是无法裁剪而且无法用图片查看器打开,但是可以用浏览器打开

?

?这样肯定不行呀,于是在网上查了些资料,都没有很全的解决方案,这里把我自己的解决方案记录下,有相同场景,有需要的小伙伴可供参考

===========================================================================

我的场景是:图片链接后缀是jpg的常规的图片格式,但是另存为的时候是webp格式

在网上下载了相关的dll包:

我把下载dll包放在了这里:LibWebP-NET-C#文档类资源-CSDN下载webp转图片的dll资源更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/ML01010736/85017362

首先了Imazen.Webp.dll是要放到你自己的项目packages文件夹里面的,在执行处理图片的类库中引用它,下面是我处理webp转jpg图片的代码,执行到这里的时候报了一个错:

然后通过查找资料发现x64和x86的文件夹里面各自有一个libwebp.dll与上面的报错似乎有某种关联,我又把x64中的dll直接放在了网站根目录bin下,执行后又出现了这个报错

?继续试错,我又把x86中的dll丢到了网站bin下,然后顺利执行通过,并成功保存了图片文件,保存的图片能正常显示缩略图

?进行到这里就完成目标了,后面就可以直接对新保存的这个图片进行裁剪啦。。。。。。

下面贴出我的代码:

/// <summary>
/// Webp图片转img
/// </summary>
/// <param name="url">图片网络连接(https://z.nooncdn.com/tr:n-t_400/v1625131912/N48678957A_1.jpg)</param>
/// <param name="newPath">图片新保存的链接</param>
public static void WebP2Image(string url, string newPath)
{
    try
    {
        //System.Net.WebClient client = new System.Net.WebClient();
        //client.DownloadFile(url, newPath);

        WebClient mywebclient = new WebClient();
        byte[] b = mywebclient.DownloadData(url);

        var outBitmap = SimpleDecoder.DecodeFromBytes(b, b.LongLength);
        outBitmap.Save(newPath, ImageFormat.Jpeg);

    }
    catch (Exception ex)
    {
        throw ex;
    }
}

?引用代码的部分,下图中img_store_address就是新图片的地址


var _ext = Path.GetExtension(url).ToLower();
var img_store_address = AppDomain.CurrentDomain.BaseDirectory + "Upload\\Image\\" + Common.GetRandomString(6) + Common.GeneralNumber(GeneralKeyType.ShortYear) + _ext ;
 WebHelper.WebP2Image(url, img_store_address);

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:55:28  更:2022-03-30 18:58:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:40:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码