|
@@ -2,7 +2,7 @@ package image
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
- "github.com/gographics/gmagick"
|
|
|
+ "gopkg.in/gographics/imagick.v3/imagick"
|
|
|
"icloudapp.cn/tools/util"
|
|
|
fileObj "icloudapp.cn/tools/util/file"
|
|
|
)
|
|
@@ -18,14 +18,14 @@ func NewImage(path string) *Image {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (i *Image) Create(file, background string, size Size) (*gmagick.MagickWand, error) {
|
|
|
+func (i *Image) Create(file, background string, size Size) (*imagick.MagickWand, error) {
|
|
|
if file != "" {
|
|
|
file = fmt.Sprintf("%s/%s", i.Path, file)
|
|
|
if !fileObj.IsFile(file) {
|
|
|
return nil, util.NewError(fmt.Sprintf("文件 %s 不存在", file))
|
|
|
}
|
|
|
}
|
|
|
- imageMW := gmagick.NewMagickWand()
|
|
|
+ imageMW := imagick.NewMagickWand()
|
|
|
|
|
|
if file != "" {
|
|
|
if err := imageMW.ReadImage(file); err != nil {
|
|
@@ -40,7 +40,7 @@ func (i *Image) Create(file, background string, size Size) (*gmagick.MagickWand,
|
|
|
if err := imageMW.SetImageFormat("PNG"); err != nil {
|
|
|
return nil, util.NewError("imageMW.SetImageFormat", err.Error())
|
|
|
}
|
|
|
- if err := imageMW.ResizeImage(size.Width, size.Height, gmagick.FILTER_LANCZOS, 1); err != nil {
|
|
|
+ if err := imageMW.ResizeImage(size.Width, size.Height, imagick.FILTER_LANCZOS); err != nil {
|
|
|
return nil, util.NewError("imageMW.SetSize", err.Error())
|
|
|
}
|
|
|
|
|
@@ -58,7 +58,7 @@ func (i *Image) Thumb(file string, size *Size) (string, error) {
|
|
|
return "", util.NewError(fmt.Sprintf("文件 %s 不存在", file))
|
|
|
}
|
|
|
|
|
|
- mw := gmagick.NewMagickWand()
|
|
|
+ mw := imagick.NewMagickWand()
|
|
|
defer mw.Destroy()
|
|
|
|
|
|
var err error
|
|
@@ -73,7 +73,7 @@ func (i *Image) Thumb(file string, size *Size) (string, error) {
|
|
|
imageScale := NewScale(width, height, 1.0)
|
|
|
scale := imageScale.MinRatio(size.Width, size.Height)
|
|
|
|
|
|
- if err = mw.ResizeImage(scale.Width, scale.Height, gmagick.FILTER_LANCZOS, 1); err != nil {
|
|
|
+ if err = mw.ResizeImage(scale.Width, scale.Height, imagick.FILTER_LANCZOS); err != nil {
|
|
|
return "", err
|
|
|
}
|
|
|
//fmt.Println("DisplayImage:", os.Getenv("DISPLAY"))
|
|
@@ -91,7 +91,7 @@ func (i *Image) Cut(file string, size *Size, position string) (string, error) {
|
|
|
position = "left"
|
|
|
}
|
|
|
|
|
|
- mw := gmagick.NewMagickWand()
|
|
|
+ mw := imagick.NewMagickWand()
|
|
|
defer mw.Destroy()
|
|
|
var err error
|
|
|
err = mw.ReadImage(file)
|
|
@@ -105,7 +105,7 @@ func (i *Image) Cut(file string, size *Size, position string) (string, error) {
|
|
|
|
|
|
scale := imageScale.MaxRatio(size.Width, size.Height)
|
|
|
|
|
|
- if err = mw.ResizeImage(scale.Width, scale.Height, gmagick.FILTER_LANCZOS, 1); err != nil {
|
|
|
+ if err = mw.ResizeImage(scale.Width, scale.Height, imagick.FILTER_LANCZOS); err != nil {
|
|
|
return "", err
|
|
|
}
|
|
|
x, y, width, height := i.Position(position, scale.Width, scale.Height, size)
|
|
@@ -122,14 +122,14 @@ func (i *Image) Cut(file string, size *Size, position string) (string, error) {
|
|
|
return destFile, nil
|
|
|
}
|
|
|
|
|
|
-func (i *Image) Resize(image string, width, height uint, angle int) (*gmagick.MagickWand, error) {
|
|
|
- imageMV := gmagick.NewMagickWand()
|
|
|
+func (i *Image) Resize(image string, width, height uint, angle int) (*imagick.MagickWand, error) {
|
|
|
+ imageMV := imagick.NewMagickWand()
|
|
|
|
|
|
if err := imageMV.ReadImage(image); err != nil {
|
|
|
return nil, util.NewError("Resize", "ReadImage", err.Error())
|
|
|
}
|
|
|
|
|
|
- if err := imageMV.ResizeImage(width, height, gmagick.FILTER_LANCZOS, 1); err != nil {
|
|
|
+ if err := imageMV.ResizeImage(width, height, imagick.FILTER_LANCZOS); err != nil {
|
|
|
return nil, util.NewError("Resize", "ResizeImage", err.Error())
|
|
|
}
|
|
|
|
|
@@ -174,18 +174,3 @@ func (i *Image) Position(position string, width, height uint, size *Size) (dx, d
|
|
|
}
|
|
|
return x, y, uint(float64(size.Width) * scale), uint(float64(size.Height) * scale)
|
|
|
}
|
|
|
-
|
|
|
-// Cache 获取缓存文件名
|
|
|
-/*func (i *Image) CacheFile(file string, format string) string {
|
|
|
- if !fileObj.IsDir(i.Cache) {
|
|
|
- if err := os.Mkdir(i.Cache, 0755); err != nil {
|
|
|
- panic(err.Error())
|
|
|
- }
|
|
|
- }
|
|
|
- if file == "" {
|
|
|
- file = util.RandomStr(10)
|
|
|
- }
|
|
|
- destName := fmt.Sprintf("%x", md5.Sum([]byte(file)))
|
|
|
- destFile := fmt.Sprintf("%s/%s.%s", i.Cache, destName, strings.ToLower(format))
|
|
|
- return destFile
|
|
|
-}*/
|