• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go初接触之imagick

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  imagemagick是一个著名的图片处理库,github上有人将其封装成了golang能用的库,所以依旧是写一个缩略图的程序。今天看项目源码看的我头都大了。

 1 package main
 2 
 3 import ("fmt"
 4     "gopkg.in/gographics/imagick.v2/imagick")
 5 
 6 func GetCompressImage(srcImage, dstImage string, quality uint) {
 7     //初始化imagick对象
 8     imagick.Initialize()
 9     defer imagick.Terminate()
10     var err error
11     //创建新的MagicWand
12     mw := imagick.NewMagickWand()
13     //读取文件
14     err = mw.ReadImage(srcImage)
15     if err != nil {
16         fmt.Println("error1!")
17     }
18     //得到并重设图片大小
19     width := mw.GetImageWidth()
20     height := mw.GetImageHeight()
21 
22     hWidth := uint(width / 2)
23     hHeight := uint(height / 2)
24 
25     err = mw.ResizeImage(hWidth, hHeight, imagick.FILTER_LANCZOS, 1)
26     if err != nil {
27         fmt.Println("error2!")
28     }
29     //改变图片质量
30     err = mw.SetImageCompressionQuality(quality)
31     if err != nil {
32         fmt.Println("error3!")
33     }
34     //导出图片
35     mw.WriteImage(dstImage)
36 }
37 
38 func main() {
39     GetCompressImage("/Users/zhanghaoran/Desktop/abc_compress.jpg", "/Users/zhanghaoran/Desktop/abc_compress2.jpg", 80)
40 }

  使用了go自带的性能测试发现处理200张图片花了2.252s,而libjpeg-turbo所写程序之用了0.9s,效率确实差了不少。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go使用msgpack发布时间:2022-07-10
下一篇:
使用xorm工具,根据数据库自动生成go代码发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap