提问:golang 各种图片 转 webp 代码

一秒之后......

package main

import (
"fmt"
"image"
"image/gif"
"image/jpeg"
"image/png"
"os" "github.com/chai2010/webp"
) func main() { // 读取图片文件
file, err := os.Open("test.jpg")
if err != nil {
fmt.Println(err)
} // 解码 jpg 格式图片
img, err := jpeg.Decode(file)
if err != nil {
fmt.Println(err)
} // 将图片转换为 webp 格式
err = webp.Encode(img, "test.webp", &webp.Options{Lossless: true})
if err != nil {
fmt.Println(err)
} // 关闭文件句柄
file.Close() // 以下是其他格式的转换,只需要替换 jpeg 为其他格式即可,如 png、gif 等等。 // 读取图片文件
file, err := os.Open("test.png")
if err != nil {
fmt.Println(err)
} // 解码 png 格式图片
img, err := png.Decode(file)
if err != nil {
fmt.Println(err)
} // 将图片转换为 webp 格式
err = webp.Encode(img, "test.webp", &webp.Options{Lossless: true})
if err != nil {
fmt.Println(err)
} // 关闭文件句柄
file.Close() // 读取图片文件
file, err := os.Open("test.gif")
if err != nil {
fmt.Println(err)
} // 解码 gif 格式图片,返回 image.Image 和 *gif.GIF 类型的数据,其中 image.Image 用于转换 webp 格式,*gif.GIF 用于保存动态图片的信息。
img, g, err := gif.Decode(file) // g 为 *gif.GIF 类型的数据,用于保存动态图片的信息。 if err != nil { // 如果不是动态图片,则 g 为 nil。 fmt.Println(err) } // 将图片转换为 webp 格式 if g == nil { // 静态图片直接转换 err = webp.Encode(img, "test.webp", &webp.Options{Lossless: true}) if err != nil { fmt.Println(err) } } else { // 动态图片需要使用 gif2webp 工具进行转换 err = webp.EncodeGIF(img, g, "test.webp", &webp.Options{Lossless: true}) if err != nil { fmt.Println(err) } } // 关闭文件句柄 file.Close()
}

虽然代码不能完美运行,还需要稍作修改,但思路是完全没有问题的....

被淘汰指日可待

被 AI 替代应该就在不远的将来的更多相关文章

  1. 【UXPA大赛企业专访】Mockplus:“设计替代开发”将成为现实

    “过去,是‘设计服务于开发’,现在,我认为是‘设计驱动开发’,而在不远的将来,随着AI的落地.大数据和云计算能力的提升,‘设计替代开发’将成为现实.Mockplus也正在为此部署并行动.” 近日,UX ...

  2. 普通人如何站在时代风口学好AI?这是我看过最好的答案

    摘要:当前,数据.算法.算力的发展突破正推动AI应用的逐步落地. AI是什么? 根据维基百科的定义,人工智能是一种新的通用目的技术(GPT, General Purpose Technology),它 ...

  3. 微软AI发布会,集齐六大亮点召唤黑科技!

    7月12日,微软合作伙伴大会Inspire在华盛顿特区如火如荼地举行.同一天,在相隔5个时区的伦敦,微软还举办了一场关于人工智能的发布会.这是一场智能技术和情感体验两相交融的科技盛宴,既有黑科技,也有 ...

  4. 智慧金融时代,大数据和AI如何为业务赋能

    前言:宜信技术人物专访是宜信技术学院推出的系列性专题,我们邀请软件研发行业的优秀技术人,分享自己在软件研发领域的实践经验和前瞻性观点. 第一期专访我们邀请到宜信科技中心AI中台负责人王东老师,从大数据 ...

  5. 从《华为的冬天》到AI的冬天 | 甲子光年

    知难不难,惶者生存. 作者 | DougLong 编辑 | 火柴Q.甲小姐 *本文为甲子光年专栏作家DougLong独家稿件.作者为AI从业者.Gary Marcus<Rebooting AI& ...

  6. zz2017-2018年AI技术前沿进展与趋势

    2017年AI技术前沿进展与趋势 人工智能最近三年发展得如火如荼,学术界.工业界.投资界各方一起发力,硬件.算法与数据共同发展,不仅仅是大型互联网公司,包括大量创业公司以及传统行业的公司都开始涉足人工 ...

  7. 英特尔® 至强® 平台集成 AI 加速构建数据中心智慧网络

    英特尔 至强 平台集成 AI 加速构建数据中心智慧网络 SNA 通过 AI 方法来实时感知网络状态,基于网络数据分析来实现自动化部署和风险预测,从而让企业网络能更智能.更高效地为最终用户业务提供支撑. ...

  8. AI实战分享 | 基于CANN的辅助驾驶应用案例

    摘要:什么是辅助驾驶?简而言之,就是借助汽车对周围环境的自动感知和分析,让驾驶员预先察觉可能发生的危险,有效增加汽车驾驶的舒适性和安全性. 导读:基于昇腾AI异构计算架构CANN的辅助驾驶AI应用实战 ...

  9. 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!

    摘要:基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测.车距计算等基本功能,作为辅助驾驶入门级 ...

  10. 博客与AI

    最近AI自动生成技术文章和答案在圈子里面引起了很大轰动,Stack Overflow暂时拒绝接收GPT生成的结果.我也经常性地浏览或者编写博客,但是最近我使用new bing或者ChatGPT的过程中 ...

随机推荐

  1. 编译打包rabbitmq然后一键部署的简单方法

    摘要 之前总结过一版,但是感觉不太全面 想着本次能够将使用中遇到的问题总结一下. 所以本次是第二版 介质下载 rabbitmq 不区分介质的打包文件 rabbitmq-server-generic-u ...

  2. click与addEventListener和removeEventListener事件与移除正确的移除事件详解

    1. onclick事件 es5 普通事件就是直接触发事件,相同的事件会被覆盖掉.代码如下: let demoDiv=document.querySelector(".demo") ...

  3. windwos10任务栏居中

    如下操作 新建一个文件夹如图 然后出现这个重右往左一直拖然后拉出来就行了如图 拖不动或者没有的把这个关了-锁定任务栏 文字如何隐藏? 在这个文字旁边右击关闭标题即可 然后锁定任务栏就OK了

  4. 从零开始配置vim(25)——关于 c++ python 的配置

    从9月份到国庆这段时间,因为得了女儿,于是回老家帮忙料理家事以及陪伴老婆和女儿.一时之间无暇顾及该系列教程的更新.等我回来的时候发现很多小伙伴私信我催更.在这里向支持本人这一拙劣教程的各位小伙伴表示真 ...

  5. ChatGPT 对接微信公众号技术方案实现!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 9天假期写了8天代码和10篇文章,这个5.1过的很爽! 如假期前小傅哥的计划一样,这个假期开启 ...

  6. 火山引擎ByteHouse:分析型数据库如何设计列式存储

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 列式存储通过支持按列存储数据,提供高性能的数据分析和查询.作为云原生数据仓库的 ByteHouse,也采用列式存储 ...

  7. Tauri VS. Electron - 真实项目的比较

    文章翻译自:Tauri VS. Electron - Real world application 以下是正文: 在这篇文章中我将会用真实的项目来比较 Electron 和 Tauri: Authme ...

  8. Bi-VAEGAN:对TF-VAEGAN提出的视觉到语义进一步改进

    论文"Bi-directional Distribution Alignment for Transductive Zero-Shot Learning"提出Bi-VAEGAN,它 ...

  9. delphi TDBLookupComboboxEh 的项目设置

  10. Embedding 模型部署及效果评测

    写在前面 最近大模型发展迅速,与之对应的向量化需求也被带动起来了,由此社区也衍生出很多模型,本文选几款,简单做下评测. 前置概念 为方便读者,先简单介绍几个概念. 概念1:Vector Embeddi ...