forked from leanote/leanote
/
Image.go
112 lines (92 loc) · 2.14 KB
/
Image.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package lea
/*
import (
"github.com/Terry-Mao/paint"
"github.com/Terry-Mao/paint/wand"
"fmt"
"os"
)
// 传源路径, 在该路径下写入另一个gif
// maxWidth 最大宽度, == 0表示不改变宽度
// 成功后删除
func TransToGif(path string, maxWidth uint, afterDelete bool) (ok bool, transPath string) {
ok = false
transPath = path
wand.Genesis()
defer wand.Terminus()
w := wand.NewMagickWand()
defer w.Destroy()
if err := w.ReadImage(path); err != nil {
fmt.Println(err);
return;
}
width := w.ImageWidth()
height := w.ImageHeight()
if maxWidth != 0 {
if width > maxWidth {
// 等比缩放
height = height * maxWidth/width
width = maxWidth
}
}
w.SetImageFormat("GIF");
if err := paint.Thumbnail(w, width, height); err != nil {
fmt.Println(err);
return;
}
// 判断是否是gif图片, 是就不用转换了
baseName, ext := SplitFilename(path)
var toPath string
if(ext == ".gif") {
toPath = baseName + "_2" + ext
} else {
toPath = TransferExt(path, ".gif");
}
if err := w.WriteImage(toPath); err != nil {
fmt.Println(err);
return;
}
if afterDelete {
os.Remove(path)
}
ok = true
transPath = toPath
return
}
// 缩小到
// 未用
func Reset(path string, maxWidth uint) (ok bool, transPath string){
wand.Genesis()
defer wand.Terminus()
w := wand.NewMagickWand()
defer w.Destroy()
if err := w.ReadImage(path); err != nil {
fmt.Println(err);
return;
}
width := w.ImageWidth()
height := w.ImageHeight()
if maxWidth != 0 {
if width > maxWidth {
// 等比缩放
height = height * maxWidth/width
width = maxWidth
}
}
if err := paint.Thumbnail(w, width, height); err != nil {
fmt.Println(err);
return;
}
toPath := TransferExt(path, ".gif");
if err := w.WriteImage(toPath); err != nil {
fmt.Println(err);
return;
}
ok = true
transPath = toPath
return
}
*/
func TransToGif(path string, maxWidth uint, afterDelete bool) (ok bool, transPath string) {
return ok, path
}