|
|
@@ -16,88 +16,88 @@ import java.io.InputStream;
|
|
|
*/
|
|
|
public class ImageShrink {
|
|
|
|
|
|
- /**
|
|
|
- * 获取图片宽度和高度
|
|
|
- *
|
|
|
- * @param file 图片路径
|
|
|
- * @return 返回图片的宽度
|
|
|
- */
|
|
|
- private static int[] getImgWidthHeight(File file) {
|
|
|
- InputStream is = null;
|
|
|
- BufferedImage src = null;
|
|
|
- int result[] = {0, 0};
|
|
|
- try {
|
|
|
- // 获得文件输入流
|
|
|
- is = new FileInputStream(file);
|
|
|
- // 从流里将图片写入缓冲图片区
|
|
|
- src = ImageIO.read(is);
|
|
|
- // 得到源图片宽
|
|
|
- result[0] = src.getWidth(null);
|
|
|
- // 得到源图片高
|
|
|
- result[1] = src.getHeight(null);
|
|
|
- is.close(); //关闭输入流
|
|
|
- } catch (Exception ef) {
|
|
|
- ef.printStackTrace();
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- public static void main(String[] args) {
|
|
|
- String url = "C:\\wildfly-9.0.2s\\standalone\\deployments\\pic.war\\DSB\\tarchives\\default\\";
|
|
|
- for (File file : new File(url).listFiles()) {
|
|
|
- String filename = file.getName();
|
|
|
- if (filename.endsWith("jpg") || filename.endsWith("JPG") || filename.endsWith("PNG") || filename.endsWith("png")) {
|
|
|
- ImageShrink.reduceImg(url + filename, url + "show_" + filename);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 指定图片宽度和高度和压缩比例对图片进行压缩
|
|
|
- *
|
|
|
- * @param imgsrc 源图片地址
|
|
|
- * @param imgdist 目标图片地址
|
|
|
- */
|
|
|
- private static void reduceImg(String imgsrc, String imgdist) {
|
|
|
- try {
|
|
|
- File srcfile = new File(imgsrc);
|
|
|
- // 检查图片文件是否存在
|
|
|
- if (!srcfile.exists()) {
|
|
|
- System.err.println("文件不存在");
|
|
|
- }
|
|
|
- int[] results = getImgWidthHeight(srcfile);
|
|
|
-
|
|
|
- int widthdist = results[0];
|
|
|
- int heightdist = results[1];
|
|
|
-
|
|
|
-
|
|
|
- float newwidth = 400f;
|
|
|
- float newheight;
|
|
|
- if (widthdist > newwidth) {
|
|
|
- newheight = newwidth * ((float) heightdist / (float) widthdist);
|
|
|
- } else {
|
|
|
- newwidth = widthdist;
|
|
|
- newheight = heightdist;
|
|
|
- }
|
|
|
-
|
|
|
- // 开始读取文件并进行压缩
|
|
|
- Image src = ImageIO.read(srcfile);
|
|
|
-
|
|
|
- // 构造一个类型为预定义图像类型之一的 BufferedImage
|
|
|
- BufferedImage tag = new BufferedImage((int) newwidth, (int) newheight, BufferedImage.TYPE_INT_RGB);
|
|
|
-
|
|
|
- // 这边是压缩的模式设置
|
|
|
- tag.getGraphics().drawImage(src.getScaledInstance((int) newwidth, (int) newheight, Image.SCALE_SMOOTH), 0, 0, null);
|
|
|
-
|
|
|
- //创建文件输出流
|
|
|
- FileOutputStream out = new FileOutputStream(imgdist);
|
|
|
- //将图片按JPEG压缩,保存到out中
|
|
|
- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
|
|
|
- encoder.encode(tag);
|
|
|
- //关闭文件输出流
|
|
|
- out.close();
|
|
|
- } catch (Exception ef) {
|
|
|
- ef.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
+// /**
|
|
|
+// * 获取图片宽度和高度
|
|
|
+// *
|
|
|
+// * @param file 图片路径
|
|
|
+// * @return 返回图片的宽度
|
|
|
+// */
|
|
|
+// private static int[] getImgWidthHeight(File file) {
|
|
|
+// InputStream is = null;
|
|
|
+// BufferedImage src = null;
|
|
|
+// int result[] = {0, 0};
|
|
|
+// try {
|
|
|
+// // 获得文件输入流
|
|
|
+// is = new FileInputStream(file);
|
|
|
+// // 从流里将图片写入缓冲图片区
|
|
|
+// src = ImageIO.read(is);
|
|
|
+// // 得到源图片宽
|
|
|
+// result[0] = src.getWidth(null);
|
|
|
+// // 得到源图片高
|
|
|
+// result[1] = src.getHeight(null);
|
|
|
+// is.close(); //关闭输入流
|
|
|
+// } catch (Exception ef) {
|
|
|
+// ef.printStackTrace();
|
|
|
+// }
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+//
|
|
|
+// public static void main(String[] args) {
|
|
|
+// String url = "C:\\wildfly-9.0.2s\\standalone\\deployments\\pic.war\\DSB\\tarchives\\default\\";
|
|
|
+// for (File file : new File(url).listFiles()) {
|
|
|
+// String filename = file.getName();
|
|
|
+// if (filename.endsWith("jpg") || filename.endsWith("JPG") || filename.endsWith("PNG") || filename.endsWith("png")) {
|
|
|
+// ImageShrink.reduceImg(url + filename, url + "show_" + filename);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 指定图片宽度和高度和压缩比例对图片进行压缩
|
|
|
+// *
|
|
|
+// * @param imgsrc 源图片地址
|
|
|
+// * @param imgdist 目标图片地址
|
|
|
+// */
|
|
|
+// private static void reduceImg(String imgsrc, String imgdist) {
|
|
|
+// try {
|
|
|
+// File srcfile = new File(imgsrc);
|
|
|
+// // 检查图片文件是否存在
|
|
|
+// if (!srcfile.exists()) {
|
|
|
+// System.err.println("文件不存在");
|
|
|
+// }
|
|
|
+// int[] results = getImgWidthHeight(srcfile);
|
|
|
+//
|
|
|
+// int widthdist = results[0];
|
|
|
+// int heightdist = results[1];
|
|
|
+//
|
|
|
+//
|
|
|
+// float newwidth = 400f;
|
|
|
+// float newheight;
|
|
|
+// if (widthdist > newwidth) {
|
|
|
+// newheight = newwidth * ((float) heightdist / (float) widthdist);
|
|
|
+// } else {
|
|
|
+// newwidth = widthdist;
|
|
|
+// newheight = heightdist;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 开始读取文件并进行压缩
|
|
|
+// Image src = ImageIO.read(srcfile);
|
|
|
+//
|
|
|
+// // 构造一个类型为预定义图像类型之一的 BufferedImage
|
|
|
+// BufferedImage tag = new BufferedImage((int) newwidth, (int) newheight, BufferedImage.TYPE_INT_RGB);
|
|
|
+//
|
|
|
+// // 这边是压缩的模式设置
|
|
|
+// tag.getGraphics().drawImage(src.getScaledInstance((int) newwidth, (int) newheight, Image.SCALE_SMOOTH), 0, 0, null);
|
|
|
+//
|
|
|
+// //创建文件输出流
|
|
|
+// FileOutputStream out = new FileOutputStream(imgdist);
|
|
|
+// //将图片按JPEG压缩,保存到out中
|
|
|
+// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
|
|
|
+// encoder.encode(tag);
|
|
|
+// //关闭文件输出流
|
|
|
+// out.close();
|
|
|
+// } catch (Exception ef) {
|
|
|
+// ef.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|