技术中心
 
 

solaris服务器上进行图片缩小放大

   日期:2006-09-08     作者:管理员    
DEMO: http://loreal.sina.com.cn/survey/thumbtest/thumb.htm
      填写一个变后的宽度,这个程序按照原比例生成一个变后的图片
      代码见下面
 
工具名字:
$ mkthumb
$ gifsicle
如果没有需要安装:
gifsicle-1.37
mkthumb-2.0
附加LibJpg,libpng等等其他包,google上应该可以搜到,109服务器安装了
 
以下是命令行范例,详细的可以参考该工具的帮助手册:
 
GIF文件的放缩:
#直接按照大小放缩
gifsicle --resize 300x1000 < 原文件路径 > 目标文件路径
#按照比例放缩
gifsicle --scale 2x2 < 原文件路径 > 目标文件路径
 
JPG文件放缩:
mkthumb -f 宽 -o -s .thumb 文件路径
 
参考网址:
http://loreal.sina.com.cn/su
rvey/thumbtest/thumb.htm
 
代码范例:
MakeThumb((char *)infile.c_str(),(char *)outfile.c_str(),atoi(scalex.c_str()),atoi(scaley.c_str()));
 
int MakeThumb(char * filepath,char * outfilepath,int width,int height){
 char buff[1000];
 //判断是JPG文件
 if(filepath[strlen(filepath)-1]==103 || filepath[strlen(filepath)-1]==71){
  sprintf(buff,"mkthumb -f %d -o -s .thumb %s",width,filepath);//jpg
  system(buff);
  string filewhole;
  filewhole=filepath;
  string path;
  string filename;
  int length;
  int i;
  length=strlen(filepath);
  for(i=length;i>0;i--){
   if(filepath[i-1]=='.') break;
  }
  char * buff1;
  buff1=(char *)malloc(1000);
  strncpy (buff1, filepath, i);
  path=buff1;
  filename=filewhole.substr(i,length-i);
  filewhole="";
  filewhole+=path;
  filewhole+="thumb.";
  filewhole+=filename;
  sprintf(buff1,"mv %s %s",filewhole.c_str(),outfilepath);
  system(buff1);
 }
 //判断是gif文件
 if(filepath[strlen(filepath)-1]==102 || filepath[strlen(filepath)-1]==70){
  sprintf(buff,"gifsicle --resize-width %d < %s > %s",width,filepath,outfilepath);
  system(buff);
 }
 return 1;
}
































































 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢