Java gif图片转换为jpg格式
下面通过代码给大家介绍Javagif图片转换为jpg格式,具体代码如下所示:
if(fileName.toLowerCase().endsWith(".gif")){//由于头像上传支持JPG、JPEG、BMP、GIF、PNG格式图片.而商汤人脸设备仅支持JPG、JPEG、BMP、PNG,故如图片为GIF格式需要转换
fileParams.put("avatarFile",api.GifToJpg(avatar_file));
}else{
fileParams.put("avatarFile",api.getBytes(avatar_file));
}
/**
*将文件转换为byte二进制流
*@paramf
*@return
*/
publicstaticbyte[]getBytes(Filef){
try{
InputStreamin=newFileInputStream(f);
ByteArrayOutputStreamout=newByteArrayOutputStream(1024);
byte[]b=newbyte[1024];
intn;
while((n=in.read(b))!=-1)
out.write(b,0,n);
in.close();
out.close();
returnout.toByteArray();
}catch(IOExceptione){
logger.error("***请设置文件路径***");
e.printStackTrace();
}
returnnull;
}
/**
*将gif格式图片转换为jpg格式文件,并直接返回byte二进制流
*@paramfile
*@return
*/
publicstaticbyte[]GifToJpg(Filefile){
BufferedImagebufferedImage;
ByteArrayOutputStreamout=newByteArrayOutputStream(1024);
try{
//readimagefile
bufferedImage=ImageIO.read(file);
//createablank,RGB,samewidthandheight,andawhite
BufferedImagenewBufferedImage=newBufferedImage(
bufferedImage.getWidth(),bufferedImage.getHeight(),
BufferedImage.TYPE_INT_RGB);
//TYPE_INT_RGB:创建一个RBG图像,24位深度,成功将32位图转化成24位
newBufferedImage.createGraphics().drawImage(bufferedImage,0,0,Color.WHITE,null);
//writetojpegfile
ImageIO.write(newBufferedImage,"jpg",out);//转换输出到二进制数组流
//ImageIO.write(newBufferedImage,"jpg",newFile("c:\\java.jpg"));//转换输出到文件
returnout.toByteArray();//二进制流
}catch(IOExceptione){
logger.error("***GifToJpg方法报错***");
e.printStackTrace();
}
returnnull;
}
知识点扩展:
用java将png图片转换成jpg格式的图片
importjava.awt.Color;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importjavax.imageio.ImageIO;
publicclassConvertImageFile{
publicstaticvoidmain(String[]args){
BufferedImagebufferedImage;
try{
//readimagefile
bufferedImage=ImageIO.read(newFile("c:\\java.png"));
//createablank,RGB,samewidthandheight,andawhitebackground
BufferedImagenewBufferedImage=newBufferedImage(bufferedImage.getWidth(),
bufferedImage.getHeight(),BufferedImage.TYPE_INT_RGB);
//TYPE_INT_RGB:创建一个RBG图像,24位深度,成功将32位图转化成24位
newBufferedImage.createGraphics().drawImage(bufferedImage,0,0,Color.WHITE,null);
//writetojpegfile
ImageIO.write(newBufferedImage,"jpg",newFile("c:\\java.jpg"));
System.out.println("Done");
}catch(IOExceptione){
e.printStackTrace();
}
}
}
总结
以上所述是小编给大家介绍的Javagif图片转换为jpg格式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!