webp格式一键转图片小工具一拖即转格式可选路径可选(源码)

2023-05-16

思路来源:webp文件转换用别人工具总不太如意,就想一点即转,动手DIY一个

资料:找了一些资料无法实现,介绍信息不全(未介绍引用组件等问题),c#无法实现

效果:webp图片拖到软件中,直接生成到原目录中(文件格式可选jpg或png)

 如果不选择“自动保存到原路径”将弹出保存对话框。默认文件保存格式*.jpg

实现步骤:

1)引用组件 Imazen.WebP

 有关依赖文件包见下载页(分x86和x64版)工具+组件+libwebp.dllhttps://download.csdn.net/download/uaime/87258672?spm=1001.2014.3001.5503

 说明:写的无依赖性,实际安装之后是无法运行的。有相关资料,缺少libwebp.dll造成的。

using Imazen.WebP;

核心代码:

        public Image webp2image(string oldp,string newp)
        {
            try
            {
                byte[] b = File.ReadAllBytes(oldp);
                var decoder = new SimpleDecoder();
                var outbitmap = decoder.DecodeFromBytes(b, b.LongLength);

                outbitmap.Save(newp, pictype);//直接保存
                return outbitmap;//用pictureBox回显
            }
            catch(Exception ex) 
            {
                return null;//必须libwebp.dll否则报错
            }
        }

图片框实现:拖入即转功能的实现方法

        private void pic_view_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                e.Effect = DragDropEffects.Link;
            else e.Effect = DragDropEffects.None;
        }


private void pic_view_DragDrop(object sender, DragEventArgs e)
        {
            try
            {
                string fileName = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
                if (fileName.ToLower().EndsWith(".webp"))
                {
                    int addr = fileName.LastIndexOf("\\");
                    file_name = fileName.Substring(addr+1, fileName.Length - addr-2- _pictype.Length);//不带扩展名
                    file_path = fileName.Substring(0, addr);//使用原路径方法
                    this.txt_url.Text = file_path;//回显路径
                    file_ext = ".webp";//记录类型(全局变量)
                }
                if (chk_src_path.Checked)
                {//原路径
                    file_path = String.Format(@"{0}\{1}{2}", file_path, file_name, _pictype);
                }
                else
                {//自定义保存路径及文件名称
                    SaveFileDialog ofd = new SaveFileDialog();
                    ofd.Filter = "Jpeg(*.jpg)|*.jpg|png(*.png)|*.png";
                    ofd.RestoreDirectory = true;//记忆
                    ofd.FileName = string.Format("{0:MMddHHmmssfff}",DateTime.Now);
                    if (ofd.ShowDialog()==DialogResult.OK)
                    {
                        file_path = ofd.FileName;//ofd.safefilename
                    }                    
                }
                this.pic_view.Image = webp2image(fileName, file_path);// Image.FromFile(fileName);
            }
            catch { }
        }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webp格式一键转图片小工具一拖即转格式可选路径可选(源码) 的相关文章

  • webp是什么文件格式?

    WebP是Google开发的一种图像文件格式 xff0c 旨在替代JPEG PNG和GIF文件格式 它支持有损和无损压缩 xff0c 7 以及动画和alpha 透明度 由谷歌于2010年推出的新一代图片格式 xff0c 在压缩方面比当前JP
  • webp格式一键转图片小工具一拖即转格式可选路径可选(源码)

    思路来源 xff1a webp文件转换用别人工具总不太如意 xff0c 就想一点即转 xff0c 动手DIY一个 资料 xff1a 找了一些资料无法实现 xff0c 介绍信息不全 未介绍引用组件等问题 xff0c c 无法实现 效果 xff
  • 用FFmpeg制作WebP动图

    去年写过一篇文章 是教大家用FFmpeg制作GIF动画的 今天在讨论到项目中碰到的一个 apng动画素材引起的程序崩溃时 有位同学建议 我们为啥不用WebP来代替 apng 是啊 why not 网上搜到一篇文章 自己试了一下 发现强大的F
  • 如何在ie11上查看webp格式

    有没有办法在 IE11 上查看 webp 图像格式 或者可以在此浏览器上使用 javascript 代码将其转换为其他格式 我尝试了 图片 元素 但似乎它不能像 Chrome 62 那样工作 This也是一个非常易于使用且有效的polyfi
  • 如何使用webp图片并支持safari

    由于压缩效果更好 我尝试在整个网站中使用 webp 图像 不过我知道 safari 不支持 webp 图像是使用加载的background image url img img webp 然后我应用其他background特性 我明白了
  • 带有 C# ImageFormat 类的 WebP 图像

    我正在从网络下载图像以将其保存在本地 它适用于任何其他图像格式 但当我尝试读取 WebP 图像时 下面的方法会失败并出现参数异常 private static Image GetImage string url try HttpWebReq
  • 如何在Windows中使用java将webp转换为png或jpg?

    I got bitbucket org luciad webp imageio在 Ubuntu 中工作 但我无法在 Windows 中工作 这是我在 Ubuntu 中所做的 下载 webp imageio 和libwebp源代码 其他版本可
  • 将位图转换为 WebP 图像?

    谁知道是否可以转换Bitmap to a WebP图像使用C 一直在 Google 搜索 但找不到 C 的任何内容 我找到了这个 mc kay libwebp sharp GitHub但它似乎没有将位图转换为WebP format 有任何想
  • 适用于 Android 的 WebP [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有关于如何在 Android 上使用 WebP 的示例吗 我试图获取 webp 图像列表并在带有图像视
  • html 中 img 标签的 webp 后备

    我知道解决方案是
  • 使用 imagewebp 将 jpg 转换为 webp

    我在使用 imagewebp 将图像转换为 webp 时遇到问题 我使用这段代码 filename dirname FILE example jpg im imagecreatefromjpeg filename webp imageweb
  • WPF 无法从 url 检索 WebP 图像?

    我无法从网址检索图像 以前 在设置 HttpClient 标头之前 我根本无法连接到该站点 我可以从其他来源检索图像 但不能从这个特定来源检索图像 检索图像的代码 var img new BitmapImage img BeginInit
  • 延迟加载带有图片、源和 img 标签的图像(webp、jpg)(React)

    我目前正在尝试使用 React 实现延迟加载图像组件 我最初的解决方案是一个非常简单和基本的方法 I used Image API https developer mozilla org en US docs Web API HTMLIma
  • 如何在 Node.js 中将 JPG 图像转换为 WEBP 格式?

    我正在尝试使用react Js上传图像并使用multer中间件将该图像保存在node Js中 这是完美的 但现在我想使用 webp converter 将该图像转换为 WEBP 格式 反之亦然 但我收到此错误 Error Command f
  • 如何使用 Expo EAS 为 React Native 中的 组件启用动画 webp?

    使用 Expo EAS 构建时 动画 gif 在 Android 中可以工作 但动画 webp awebp 则不能 Why 如何让 awebp 工作 为什么 gif 动画可以用 但它却不起作用 React Native 有动画图像支持多种格
  • 如果是 Chrome,请使用 WebP

    因为目前只有 Chrome 和 Opera 支持 WebP 所以我想知道是否可以针对这两个特定浏览器并将它们重定向以获取我网站的另一个版本 以便我可以帮助更快地优化我的网站下载速度 Thanks 我这样解决了这个问题 检查客户端是否在 Ac
  • 适用于 Android 的动画 WebP 编码器

    有没有关于如何编码的示例动画WebP对于安卓 或者也许有人成功了并且可以指导我完成它 我有一批 webP 图像 我想用它们创建一个动画图像 有 libwebp 库 但是 它不支持动画 webP 如果我从所读内容中理解正确 我需要使用 web
  • 使用 (imagemagick) `mogrify` 将 webp 文件转换为动画 gif 时如何避免丢失?

    使用此代码mogrify format gif webp我在另一个论坛找到的https superuser com questions 1506337 batch convert webp files to gif files offlin
  • WPF 无法从 url 检索 WebP 图像?

    我无法从网址检索图像 以前 在设置 HttpClient 标头之前 我根本无法连接到该站点 我可以从其他来源检索图像 但不能从这个特定来源检索图像 检索图像的代码 var img new BitmapImage img BeginInit
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple

随机推荐