码迷,mamicode.com
首页 > 其他好文 > 详细

Go初接触之imagick

时间:2018-04-18 20:10:27      阅读:954      评论:0      收藏:0      [点我收藏+]

标签:效率   大小   user   error   ora   AC   init   width   ack   

  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,效率确实差了不少。

Go初接触之imagick

标签:效率   大小   user   error   ora   AC   init   width   ack   

原文地址:https://www.cnblogs.com/Torrance/p/8877039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!