Image图片转化为JPG图片
Image图片转化为JPG图片
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* @author Daniel Cao
* @date 2007-5-18
* @time 上午09:51:24
*
*/
public class ImageUtil {
/**
* @param args
*/
public static void main(String[] args) {
try{
CopyImageFromURL("E:/cat.png","E:/111/aaa.jpg");
CopyImageFromURL("http://www.csdn.net/ui/styles/public_header_footer/logo_csdn.gif","E:/111/logo_csdn.jpg");
}catch(Exception e){
e.printStackTrace();
}
}
/**
*
* @param imageURL 输入图片的URL完整路径,可以是本地文件,也可以是网路上的文件
* @param localPath 保存在本地的路径
* @throws Exception
*/
public static void CopyImageFromURL(String imageURL, String localPath)
throws Exception {
// 取得文件后缀名
String tmpImageURL = imageURL.toLowerCase();
String regex = "(//.)(gif|bmp|png|dib|jpg|jpeg|jfif)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(tmpImageURL);
if (!matcher.find()) {
throw new Exception("不支持该格式文件.");
}
URL url;
if (imageURL.toLowerCase().startsWith("http")) {// http url
url = new URL(imageURL);
} else {// 文件url
String tmpUrl = imageURL.toLowerCase();
String beginer = tmpUrl.split("/")[0];
if (beginer.matches("[c-o]:")) {// 路径支持到c:d:....o:
url = new File(imageURL).toURL();
} else {
throw new Exception("无法解析文件URL.");
}
}
BufferedImage src = ImageIO.read(url);
int width = src.getWidth(null);
int height = src.getHeight(null);
// 保存图像到本地
int lastSep1 = localPath.lastIndexOf("/");
int lastSep2 = localPath.lastIndexOf("//");
int lastSep = (lastSep1>=lastSep2?lastSep1:lastSep2);
String path = localPath.substring(0,lastSep);
File localDir = new File(path);
if (!localDir.exists()) {
localDir.mkdirs();
}
BufferedImage outImg = new BufferedImage(width, height,src.getType());
outImg.getGraphics().drawImage(src, 0, 0, width, height, null);
FileOutputStream out = new FileOutputStream(localPath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(outImg);
out.close();
}
}
可以把所有支持格式的图片gif|bmp|png|dib|jpg|jpeg|jfif转化为jpg格式的图片,原始图片可以是网路上的图片,也可以是本地磁盘上的图片。
另一种实现方式:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;
import javax.imageio.ImageIO;
/**
* @author Daniel Cao
* @date 2007-5-18
* @time 上午09:51:24
*
*/
public class ImageUtil {
/**
* @param args
*/
public static void main(String[] args) {
try {
// CopyImageFromURL("E:/cat.png","E:/111/aaa.jpg");
CopyImageFromURL(
"http://www.csdn.net/ui/styles/public_header_footer/logo_csdn.gif",
"jpg", "E:/111/aaa.png");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 输出图片只支持一些非标准的图片格式
*
* @param imageURL
* 输入图片的URL完整路径,可以是本地文件,也可以是网路上的文件
* @param type
* 输出图片类型,只能是 bmp|png|jpg|jpeg
* @param localPath
* 保存在本地的路径
* @throws Exception
*/
public static void CopyImageFromURL(String imageURL, String type,
String localPath) throws Exception {
// 取得文件后缀名
String tmpImageURL = imageURL.toLowerCase();
String srcSuffix = tmpImageURL.substring(imageURL.lastIndexOf(".") + 1);
String regex = "^gif|bmp|png|jpg|jpeg|jfif$";
String regex1 = "^bmp|png|jpg|jpeg$";
if (!srcSuffix.matches(regex)) {
throw new Exception("不支持源图片格式[" + srcSuffix + "].");
}
if (!type.matches(regex1)) {
throw new Exception("不支持输出图片格式[" + type + "].");
}
URL url;
if (imageURL.toLowerCase().startsWith("http")) {// http url
url = new URL(imageURL);
} else {// 文件url
String tmpUrl = imageURL.toLowerCase();
String beginer = tmpUrl.split("/")[0];
if (beginer.matches("[c-o]:")) {// 路径支持到c:d:....o:
url = new File(imageURL).toURL();
} else {
throw new Exception("无法解析文件URL.");
}
}
BufferedImage src = ImageIO.read(url);
// 保存图像到本地
// 解析输出路径
int lastSep11 = localPath.lastIndexOf("/");
int lastSep21 = localPath.lastIndexOf("//");
int lastSep22 = (lastSep11 >= lastSep21 ? lastSep11 : lastSep21);
String lastName = localPath.substring(lastSep22 + 1);
boolean isOutputDir = true;
if (lastName.indexOf(".") > 0) {
int lst = lastName.lastIndexOf(".");
String sfx = lastName.substring(lst + 1);
if (sfx.matches(regex1)) {
isOutputDir = false;
}
}
String outputName;
if (isOutputDir){//输出的是路径
File localDir = new File(localPath);
if (!localDir.exists()) {// 输入的是路径
localDir.mkdirs();
}
//输出文件名从输入文件解析
int lastSep1 = imageURL.lastIndexOf("/");
int lastSep2 = imageURL.lastIndexOf("//");
int lastSep = (lastSep1 >= lastSep2 ? lastSep1 : lastSep2);
outputName = imageURL.substring(lastSep + 1);
}else{//输出的是文件
int lastSep1 = localPath.lastIndexOf("/");
int lastSep2 = localPath.lastIndexOf("//");
int lastSep = (lastSep1 >= lastSep2 ? lastSep1 : lastSep2);
outputName = localPath.substring(lastSep + 1);
String path = localPath.substring(0,lastSep);
File outDir = new File(path);
if (!outDir.exists()){
outDir.mkdirs();
}
localPath = path;
}
//用给定的后缀输出
String newName = outputName.substring(0,outputName.lastIndexOf(".")) + "." + type;
FileOutputStream out = new FileOutputStream(localPath + "/" + newName);
ImageIO.write(src, type, out);
System.out.println(localPath + "/" + newName + "输出成功.");
out.close();
}
}
Image图片转化为JPG图片相关推荐
- Python使用PIL将png图片转化为jpg图片
Python使用PIL将png图片转化为jpg图片 pip install Pillow #PIL将png图片转化为jpg图片语法 from PIL import Imageim1 = Image.o ...
- AD17如何将图片转化为PCB图片丝印,定制你的专属logo!
AD17如何将图片转化为PCB图片丝印,定制你的专属logo! 在AD中,画完PCB怎么能不加上加上独一无二的logo! 步骤非常简单,笔者只讲干货: 1.首先,若没有脚本文件可以先下载一个脚本工具: ...
- python修改图片,Python之修改图片像素值的方法
在做语义分割项目时,标注的图片不合标准,而且类型是RGBA型,且是A的部分表示的类别,因此需要将该图片转化为RGB图片 # -*- coding:utf8 -*- import os from PIL ...
- xsd文件转图片_如何将图片转化为PDF格式?分享一个超简单的方法给你
如何将图片转化为PDF格式?有些朋友经常需要将图片转换成PDF格式文件,这样比较方便保存和传输.熟悉文件转换的朋友是知道该怎么操作的,不了解的朋友不用担心,今天我来教大家一个方法,能够帮助我们简单快速 ...
- 批量将PPM格式图片转化为JPG格式
将PPM格式图片转化为JPG格式 做图像识别的时候数据集常常是ppm格式的,虽然不影响建模训练,但是我们电脑往往不支持ppm格式的图像展示. 比如到做交通标志识别的时候用到的BelgiumTS交通数据 ...
- Itext学习(二)----实现把图片转化为pdf
实现 图像转化为pdf 把图片转化为pdf 实现效果图 itext 逻辑代码 import java.io.File; import java.io.FileNotFoundException; im ...
- 将png图片转化为icon
闲着没事做了个工具,将png图片转化为icon图标,安装即用.(转换后的icon图标在D:/图片素材/icon) 链接:https://pan.baidu.com/s/1We-vZxjV4GRLtc4 ...
- MATLAB实现将图片转化为gif格式的动画
MATLAB实现将图片转化为gif格式的动画 gif格式的动画实质上就是连续播放一系列的图片来实现的.所以将图片连接起来保存到gif格式的文件中即可实现. 通用格式: %% 保存为GIF格式 cl ...
- 如何将jpg等格式的图片转化为yuv
1. 下载ffmpeg,转码图片和视频的利器啊!官方免费下载地址: Releases · BtbN/FFmpeg-Builds · GitHub 2. 无需安装,解压缩之后即可使用.这时需要使用win ...
最新文章
- python实现洗牌算法_洗牌算法及 random 中 shuffle 方法和 sample 方法浅析
- OpenGL入门学习(十二) 【转】
- python自动化办公都能做什么菜-python接口自动化
- 网站中人性化提示信息的JavaScript实现
- USB2.0 设备类代码表
- BugFree2.1.3升级到BugFree3.0.2
- c语言创建字符树,使用C语言构建基本的二叉树数据结构
- centos7 搭建apache druid
- windows 下借助7zip实现命令行解压缩
- SpringBoot 核心源码解读
- Linux服务器网卡驱动安装及故障排除
- 华为展望5G未来 安全问题成关键
- vue 中引入阿里云的云盾防水墙
- 小米oj和为零的三元组
- HAL库的串口基础学习(包含串口接收不定长数据的实现)
- 采用最大连通域算法对三维医学图像分割结果做后处理
- A/B Problem(大数)
- 泰山OFFICE技术讲座:字体属性的上标研究1:上标是什么
- 只有程序员才懂的笑话
- c语言中extem的作用,extern是什么意思?C语言中extern用法全解