对图片进行操作的脚本

pike写的,对图片进行操作的一些脚本,着急用的时候可以拿来用用

//该程序测试转化.jpg的图片,进行图片的缩放
int main(int num ,array(string) args)
{
        if(num==2)
        {
        string image=args[1];
        write(image+"/n");
        mixed err=catch{
        write("Image convert test!/n");
        string t_str=Image.load_file(image);
        object o;
        if(search(image,".jpg.png")>0||search(image,".gif.png")>0||search(image,".bmp.png")>0)
        {
                write("是转过的图像,不再做处理|"+image+"/n");
                return 1;
        }
        if(search(image,".jpg")>0)
        o=Image.JPEG.decode(t_str);
        else if(search(image,".png")>0)
        {
        o=Image.PNG.decode(t_str);
        }
        else
        o=Image.JPEG.decode(t_str);

        int x=o->xsize();
        int y=o->ysize();
        write("x:"+x+"y:"+y+"/n");
                if(x>110&&o!=0)
                {
                        float xx=(float)x;
                        float xx_r=110.0/xx;
                        write("scale rate"+xx_r+"/n");
                        o=o->scale(xx_r);
                        string ret="";
                        if(search(image,".jpg")>0)
                        ret=Image.JPEG.encode(o);
                        else if(search(image,".png")>0)
                        ret=Image.PNG.encode(o);
                        else
                        ret=Image.JPEG.encode(o);

                        Stdio.write_file(image,ret);
                }
        };
        if(err)
        {
        write("内部错误/n");
        }
        }                                                                                                        
        else                                                                                                     
        {                                                                                                        
        write("参数错误");                                                                                       
        }                                                                                                         
                                                                                                                                                                               
        return 1;                                                                                                
}                                 

下面的程序是把别的格式图片都转换成png格式的

format_decode.pike

int main(int num ,array(string) args)
{
        if(num==2)
        {
        string image=args[1];
        //write(image+"/n");
        //mixed err=catch{
        write("************************Image decode test begin!****************/n");
        string t_str=Image.load_file(image);
        object o;
        //if(search(image,".jpg.png")>0||search(image,".gif.png")>0||search(image,".bmp.png")>0||search(image,".png")>0||search(imag
e,".PNG")>0)
        if(search(image,".png")>0||search(image,".PNG")>0)
        {
                write("是转过的图像,不再做处理|"+image+"/n");
                return 1;
        }
        if(search(image,".jpg")>0||search(image,".JPG")>0)
        {
                write("是.jpg   .JPG |"+image+"/n");
                o=Image.JPEG.decode(t_str);
        }
        else if(search(image,".gif")>0||search(image,".GIF")>0)
        {
                write("是.gif   .GIF |"+image+"/n");
                o=Image.GIF.decode(t_str);
        }
        else if(search(image,".bmp")>0||search(image,".BMP")>0)
        {
                write("是.bmp  .BMP |"+image+"/n");
                o=Image.BMP.decode(t_str);
        }
        if(o!=0)
        {
        write("另存为....../n");
        string ret=Image.PNG.encode(o);
        string decode_img = image[0..sizeof(image)-5];
        Stdio.write_file(decode_img+".png",ret);
        //这里需要把原来的jpg或者其他格式的原图删除
        string cmd="rm "+image;
        Process.system(cmd);
        }
        write("************************Image decode test end!****************/n");

    }
        return 1;
}

脚本:

#! /bin/sh

export PATH=$PATH:/usr/local/bin:/usr/bin:/usr/local/sbin
#备份一下原始图片信息
/bin/cp -fr /home/xxx/data/* /home/xxx/data-bak

dir=.
curfiles=$(find /home/xxx/data/)

#转换data目录下的图片为png格式
echo $curfiles
for file in $curfiles
do
        if [ -f $file ]
        then
                /usr/local/bin/pike /home/xxx/bin/format_decode.pike $file
                echo $file
        fi
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值