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

GraphicsMagick 学习

时间:2020-04-20 20:09:29      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:elf   loop   file   size   rtc   des   col   ica   orm   

::1.批量转换
gm convert -output-directory output -resize 320x320 "*.gif"

::2.单个转换,锁定长宽比
gm convert -resize 600x1200 test.jpg output\t.jpg

::3.单个转换,强制转换
gm convert -resize 600x1200! test.jpg output\t.jpg

::4.获取图片信息
gm identify test.jpg
test.jpg JPEG 1200x800+0+0 DirectClass 8-bit 172.0Ki 0.000u 0m:0.000006s

::5.图片格式转换
gm convert test.jpg test.png

::6.图片裁剪
gm convert test.jpg -crop 50x50+10+10 output\c3.jpg

::7.图片裁剪
gm convert test.jpg -gravity east -crop 50x50+10+10 output\c3.jpg

::8.按比例裁剪
gm convert test.jpg -crop 50%x50% +repage output\t5_d.jpg

::9.旋转+背景色
gm convert test.jpg -background blue -rotate 45 output\t10.jpg

::10.生成一张白色图片
gm convert -size 1000x800 xc:"#fff" white.jpg

::11.更改gif的帧率,应该是每张图片的延时
gm convert -delay 3 1.gif d1.gif

::12.更改gif的循环播放次数
gm convert -loop 3 1.gif d2.gif

::13.图片叠加
gm composite -dissolve 10 flag.jpg  eagle.jpg o1.jpg
gm composite -dissolve 30 -resize 800x800 flag.jpg -gravity center -resize 600x600 eagle.jpg o2.jpg

gm convert infile.jpg -thumbnail 120x80 -background red -gravity center -extent 140x100-10-5 outfile.jpg

gm convert background.png -compose over overlay.png -geometry 100x100+0+0 -composite new.png

 

        if self.mode == stretch or srcRateStr == destRateStr or srcRate == destRate:
            # 拉伸模式 或 等比例(长宽比)转换
            cmd = gm convert "{}" -resize {}x{}! {}.format(self.srcFile, self.destWidth, self.destHeight, self.fullOutputPicFile)
        elif self.mode == fill and srcRate < destRate:
            maxW = self.destWidth
            maxH = int(round(self.destWidth / srcRate))
            offsetH = int(round((maxH - self.destHeight) / 2))
            print(maxH = , maxH)
            print(maxW = , maxW)
            print(offsetH = , offsetH)
            cmd = gm convert "{}" -resize {}x{} -crop {}x{}+0+{} "{}".format(self.srcFile, maxW, maxH, self.destWidth, self.destHeight, offsetH, self.fullOutputPicFile)
        elif self.mode == fill and srcRate > destRate:            
            maxH = self.destHeight
            maxW = int(self.destHeight * srcRate)
            offsetW = int(round((maxW - self.destWidth) / 2))
            print(maxH = , maxH)
            print(maxW = , maxW)
            print(offsetW = , offsetW)
            cmd = gm convert "{}" -resize {}x{} -crop {}x{}+{}+0 "{}".format(self.srcFile, maxW, maxH, self.destWidth, self.destHeight, offsetW, self.fullOutputPicFile)
        elif self.mode == fit and srcRate < destRate:
            minH = self.destHeight
            minW = int(self.destHeight * srcRate)
            backPic = self.whitePic
            if self.fillColor == black:
                backPic = self.blackPic
            cmd = gm composite -resize {}x{} -gravity center "{}" -resize {}x{}! "{}" -dissolve 100 "{}".format(minW, minH, self.srcFile, self.destWidth, self.destHeight, backPic, self.fullOutputPicFile)
        elif self.mode == fit and srcRate > destRate:
            minW = self.destWidth
            minH = int(self.destWidth / srcRate)
            backPic = self.whitePic
            if self.fillColor == black:
                backPic = self.blackPic
            cmd = gm composite -resize {}x{} -gravity center "{}" -resize {}x{}! "{}" -dissolve 100 "{}".format(minW, minH, self.srcFile, self.destWidth, self.destHeight, backPic, self.fullOutputPicFile)

 

def runGraphicMagicCmd(cmd):
    output = ‘‘
    error = ‘‘
    try:
        ret = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
        output = ret.communicate()[0].decode().strip()
        error = ret.communicate()[1].decode().strip()
        ret.stderr.close()
        ret.stdout.close()
    except Exception as ex:
        error = str(ex)
    return output, error

def runConvertCmd(cmd):
    _, error = runGraphicMagicCmd(cmd)

    if len(error) == 0:
        error = success
    return error == success, error  

 

GraphicsMagick 学习

标签:elf   loop   file   size   rtc   des   col   ica   orm   

原文地址:https://www.cnblogs.com/onlyou13/p/12740024.html

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