- 浏览: 683146 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Hippyqq:
谢谢很有用,
java中遍历MAP的几种方法 -
XSoftlab:
超详细。。。Java map 详解 - 用法、遍历、排序、常用 ...
java中遍历MAP的几种方法 -
bobo22:
importnet.sf.fmj.ui.application ...
java来调用电脑视频摄像头拍照进行截图 -
qq981378640:
#include <stdio.h>
int ...
c语言中unsigned类型和普通类型间的转换 -
qq981378640:
楼主你这样有点复杂了,直接这样写更好更方便
#include ...
c语言中unsigned类型和普通类型间的转换
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* * @author WQ * @date 2011-01-14 * @versions 1.0 图片压缩工具类 提供的方法中可以设定生成的
* 缩略图片的大小尺寸等
*/
public class ImageUtil {
/** * 图片文件读取 * * @param srcImgPath * @return */
private static BufferedImage InputImage(String srcImgPath) {
BufferedImage srcImage = null;
try {
FileInputStream in = new FileInputStream(srcImgPath);
srcImage = javax.imageio.ImageIO.read(in);
} catch (IOException e) {
System.out.println("读取图片文件出错!" + e.getMessage());
e.printStackTrace();
}
return srcImage;
}
public static void main(String args[]){
try {
Map<Integer, String> map = readfile("E:/yuan", null);
for (int i = 0; i < map.size(); i++) {
System.out.println(map.get(i) + " ==" + i);
System.out.println();
String oldpath = map.get(i);
compressImage(map.get(i), "E:/ww/_" + i + ".png", 100, 75);
}
} catch (Exception ex) {
}
System.out.println("ok");
}
/**
* * 将图片按照指定的图片尺寸压缩 * * @param srcImgPath :源图片路径 * @param outImgPath *
* :输出的压缩图片的路径 * @param new_w * :压缩后的图片宽 * @param new_h * :压缩后的图片高
*/
public static void compressImage(String srcImgPath, String outImgPath,
int new_w, int new_h) {
BufferedImage src = InputImage(srcImgPath);
disposeImage(src, outImgPath, new_w, new_h);
}
/**
* * 指定长或者宽的最大值来压缩图片 * * @param srcImgPath * :源图片路径 * @param outImgPath *
* :输出的压缩图片的路径 * @param maxLength * :长或者宽的最大值
*/
public static void compressImage(String srcImgPath, String outImgPath,
int maxLength) {
// 得到图片
BufferedImage src = InputImage(srcImgPath);
if (null != src) {
int old_w = src.getWidth();
// 得到源图宽
int old_h = src.getHeight();
// 得到源图长
int new_w = 0;
// 新图的宽
int new_h = 0;
// 新图的长
// 根据图片尺寸压缩比得到新图的尺寸
if (old_w > old_h) {
// 图片要缩放的比例
new_w = maxLength;
new_h = (int) Math.round(old_h * ((float) maxLength / old_w));
} else {
new_w = (int) Math.round(old_w * ((float) maxLength / old_h));
new_h = maxLength;
}
disposeImage(src, outImgPath, new_w, new_h);
}
}
/** * 处理图片 * * @param src * @param outImgPath * @param new_w * @param new_h */
private synchronized static void disposeImage(BufferedImage src,
String outImgPath, int new_w, int new_h) {
// 得到图片
int old_w = src.getWidth();
// 得到源图宽
int old_h = src.getHeight();
// 得到源图长
BufferedImage newImg = null;
// 判断输入图片的类型
switch (src.getType()) {
case 13:
// png,gifnewImg = new BufferedImage(new_w, new_h,
// BufferedImage.TYPE_4BYTE_ABGR);
break;
default:
newImg = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB);
break;
}
Graphics2D g = newImg.createGraphics();
// 从原图上取颜色绘制新图
g.drawImage(src, 0, 0, old_w, old_h, null);
g.dispose();
// 根据图片尺寸压缩比得到新图的尺寸
newImg.getGraphics().drawImage(
src.getScaledInstance(new_w, new_h, Image.SCALE_SMOOTH), 0, 0,
null);
// 调用方法输出图片文件
OutImage(outImgPath, newImg);
}
/**
* * 将图片文件输出到指定的路径,并可设定压缩质量 * * @param outImgPath * @param newImg * @param
* per
*/
private static void OutImage(String outImgPath, BufferedImage newImg) {
// 判断输出的文件夹路径是否存在,不存在则创建
File file = new File(outImgPath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}// 输出到文件流
try {
ImageIO.write(newImg, outImgPath.substring(outImgPath
.lastIndexOf(".") + 1), new File(outImgPath));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Map<Integer, String> readfile(String filepath,
Map<Integer, String> pathMap) throws Exception {
if (pathMap == null) {
pathMap = new HashMap<Integer, String>();
}
File file = new File(filepath);
// 文件
if (!file.isDirectory()) {
pathMap.put(pathMap.size(), file.getPath());
} else if (file.isDirectory()) { // 如果是目录, 遍历所有子目录取出所有文件名
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filepath + "/" + filelist[i]);
if (!readfile.isDirectory()) {
pathMap.put(pathMap.size(), readfile.getPath());
} else if (readfile.isDirectory()) { // 子目录的目录
readfile(filepath + "/" + filelist[i], pathMap);
}
}
}
return pathMap;
}
}
转http://lijinzhe.blog.163.com/blog/static/62147668201222024822711/
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* * @author WQ * @date 2011-01-14 * @versions 1.0 图片压缩工具类 提供的方法中可以设定生成的
* 缩略图片的大小尺寸等
*/
public class ImageUtil {
/** * 图片文件读取 * * @param srcImgPath * @return */
private static BufferedImage InputImage(String srcImgPath) {
BufferedImage srcImage = null;
try {
FileInputStream in = new FileInputStream(srcImgPath);
srcImage = javax.imageio.ImageIO.read(in);
} catch (IOException e) {
System.out.println("读取图片文件出错!" + e.getMessage());
e.printStackTrace();
}
return srcImage;
}
public static void main(String args[]){
try {
Map<Integer, String> map = readfile("E:/yuan", null);
for (int i = 0; i < map.size(); i++) {
System.out.println(map.get(i) + " ==" + i);
System.out.println();
String oldpath = map.get(i);
compressImage(map.get(i), "E:/ww/_" + i + ".png", 100, 75);
}
} catch (Exception ex) {
}
System.out.println("ok");
}
/**
* * 将图片按照指定的图片尺寸压缩 * * @param srcImgPath :源图片路径 * @param outImgPath *
* :输出的压缩图片的路径 * @param new_w * :压缩后的图片宽 * @param new_h * :压缩后的图片高
*/
public static void compressImage(String srcImgPath, String outImgPath,
int new_w, int new_h) {
BufferedImage src = InputImage(srcImgPath);
disposeImage(src, outImgPath, new_w, new_h);
}
/**
* * 指定长或者宽的最大值来压缩图片 * * @param srcImgPath * :源图片路径 * @param outImgPath *
* :输出的压缩图片的路径 * @param maxLength * :长或者宽的最大值
*/
public static void compressImage(String srcImgPath, String outImgPath,
int maxLength) {
// 得到图片
BufferedImage src = InputImage(srcImgPath);
if (null != src) {
int old_w = src.getWidth();
// 得到源图宽
int old_h = src.getHeight();
// 得到源图长
int new_w = 0;
// 新图的宽
int new_h = 0;
// 新图的长
// 根据图片尺寸压缩比得到新图的尺寸
if (old_w > old_h) {
// 图片要缩放的比例
new_w = maxLength;
new_h = (int) Math.round(old_h * ((float) maxLength / old_w));
} else {
new_w = (int) Math.round(old_w * ((float) maxLength / old_h));
new_h = maxLength;
}
disposeImage(src, outImgPath, new_w, new_h);
}
}
/** * 处理图片 * * @param src * @param outImgPath * @param new_w * @param new_h */
private synchronized static void disposeImage(BufferedImage src,
String outImgPath, int new_w, int new_h) {
// 得到图片
int old_w = src.getWidth();
// 得到源图宽
int old_h = src.getHeight();
// 得到源图长
BufferedImage newImg = null;
// 判断输入图片的类型
switch (src.getType()) {
case 13:
// png,gifnewImg = new BufferedImage(new_w, new_h,
// BufferedImage.TYPE_4BYTE_ABGR);
break;
default:
newImg = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB);
break;
}
Graphics2D g = newImg.createGraphics();
// 从原图上取颜色绘制新图
g.drawImage(src, 0, 0, old_w, old_h, null);
g.dispose();
// 根据图片尺寸压缩比得到新图的尺寸
newImg.getGraphics().drawImage(
src.getScaledInstance(new_w, new_h, Image.SCALE_SMOOTH), 0, 0,
null);
// 调用方法输出图片文件
OutImage(outImgPath, newImg);
}
/**
* * 将图片文件输出到指定的路径,并可设定压缩质量 * * @param outImgPath * @param newImg * @param
* per
*/
private static void OutImage(String outImgPath, BufferedImage newImg) {
// 判断输出的文件夹路径是否存在,不存在则创建
File file = new File(outImgPath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}// 输出到文件流
try {
ImageIO.write(newImg, outImgPath.substring(outImgPath
.lastIndexOf(".") + 1), new File(outImgPath));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Map<Integer, String> readfile(String filepath,
Map<Integer, String> pathMap) throws Exception {
if (pathMap == null) {
pathMap = new HashMap<Integer, String>();
}
File file = new File(filepath);
// 文件
if (!file.isDirectory()) {
pathMap.put(pathMap.size(), file.getPath());
} else if (file.isDirectory()) { // 如果是目录, 遍历所有子目录取出所有文件名
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filepath + "/" + filelist[i]);
if (!readfile.isDirectory()) {
pathMap.put(pathMap.size(), readfile.getPath());
} else if (readfile.isDirectory()) { // 子目录的目录
readfile(filepath + "/" + filelist[i], pathMap);
}
}
}
return pathMap;
}
}
转http://lijinzhe.blog.163.com/blog/static/62147668201222024822711/
发表评论
-
java应用CPU占用100%内存泄漏分析总结
2017-11-28 08:46 574转; http://www.blogjava.net/hank ... -
Java Mysql存取Blob数据
2014-10-21 12:54 1557当数据库字段为blob类型时 ,我们如果使用PreparedS ... -
关于日志的等级 的配置
2014-07-02 16:49 633#这里定义能显示到的最低级别,若定义到INFO级别,则看不到D ... -
Extjs中如何在一行textfield后面加几个字
2014-04-14 16:38 1530{ fieldLabel : '输入框', xtype : ' ... -
数据库中图片的操作(字节流的操作)
2013-12-09 17:26 829package com.fww.util; import j ... -
java 获得本地ip
2013-11-28 18:04 895Enumeration allNetInterfaces = ... -
java多线程下载的例子代码
2013-09-09 16:16 0java多线程下载的例子代码 import java.io.I ... -
java来调用电脑视频摄像头拍照进行截图
2013-09-09 15:34 10411packagecom.pengo.capture; i ... -
java中lucene解析word工具类
2013-09-09 15:32 1057java中lucene解析word工具类(读取word文档并查 ... -
Java 向oracle插入百万数据
2013-09-09 15:30 1553这里的表是没加索引的 ... -
java 写 excel
2013-08-28 10:29 983import java.io.FileOutputStream ... -
list 排序
2013-06-20 20:43 1086import java.util.Collections; i ... -
java抓取网络图片放到本地
2013-05-07 10:39 4300import java.io.BufferedInputStr ... -
java代码发送JSON格式的httpPOST请求
2013-05-06 13:41 20388package com.test; import java. ... -
java操作excel(HSSF样式) .
2013-04-15 15:06 1981java操作excel(HSSF样式一) import ja ... -
JAVA+Ftpclient操作
2013-03-07 16:35 6583最近再做个ftp上传、下载的项目,用到的包是sun.net.f ... -
自动消除文本框中的空格;js清除空格问题,去除空格问题
2013-03-01 11:22 6321自动消除文本框中的空格;js清除空格问题,去除空格问题 要完成 ... -
java执行Linux命令 .
2012-12-26 09:29 1303/** * 修改Linux目录权限 * @param ... -
UUID生成类
2012-12-16 18:18 2498import java.net.InetAddress; im ... -
java反射获得类的字段和值
2012-12-10 17:26 1639import java.util.HashMap; impo ...
相关推荐
本文将详细解释如何使用Java将图片转换为指定大小,无论原始图片尺寸如何。 首先,我们需要了解Java中的核心类库`javax.imageio`和`java.awt.image`,它们提供了处理图像的功能。`javax.imageio`用于读取和写入图像...
总结来说,Java中的图片压缩涉及到读取图片、调整尺寸、选择合适的压缩格式和质量,并将结果保存到新文件。开发者可以根据需求灵活选择API和策略,确保在满足压缩需求的同时,尽可能保持图片的质量。
以下是压缩图片的示例代码: ```java public void compressImage(BufferedImage image, String outputFilePath, int targetWidth, int targetHeight, float quality) throws IOException { ImageOutputStream ...
通过创建一个目标尺寸的BufferedImage对象,然后使用`Graphics2D`的`drawImage()`方法将原图绘制到新尺寸的BufferedImage上,从而实现按指定宽度和高度压缩图片。 ```java import java.awt.Graphics2D; import java...
根据提供的文件信息,我们可以总结出以下关于“Java压缩上传图片”的相关知识点: ### 1. 知识点一:图片压缩的基本概念 - **定义**:图片压缩是一种减少图像文件大小的技术,通常用于减少存储空间需求或加快网络...
使用两中方法进行压缩,可以只改变图片大小,如,原图片100kb,压缩后变成40kb。并且不改变宽高。 一.使用ImageMagick进行压缩类-Aa.java 需要做以下配置: 1.将jmagick.dll加入jdk\bin目录中 2.将jmagick.dll加入到...
### 如何使用Java进行图片尺寸调整与裁剪 在日常的软件开发中,经常会遇到对图片进行处理的需求,比如调整图片大小、裁剪图片等。本文将详细介绍如何使用Java实现图片处理,具体包括图片的尺寸调整和指定位置的裁剪...
"java图片压缩通用类"是一个实用的工具,它提供了便捷的方法来压缩图片,适用于各种项目需求。这个通用类库简化了处理图像的复杂性,使得开发者可以快速地集成图片压缩功能到他们的应用程序中。 在Java中,我们可以...
以下是一个简单的例子,展示了如何使用Java 2D API压缩图片: ```java import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ...
3. **保存压缩图片**:使用`ImageIO.write()`方法将压缩后的图片写入新的文件,指定合适的格式和质量。 ```java File outputFile = new File("path_to_output_image"); ImageIO.write(resizedImage, "JPEG", ...
3. **调整图片大小**(可选):如果目标是减小图片尺寸,可以使用Bitmap对象的Clone()方法配合Rectangle结构体来缩放图片。注意,缩小图片通常比放大更节省空间,但可能会牺牲部分清晰度。 4. **设置压缩参数**:...
以下是一些关于“Java将PDF生成图片”的核心知识点: 1. **PDF处理库**:在Java中,我们可以使用第三方库如Apache PDFBox、iText和PDF Clown等来处理PDF文档。这些库提供了丰富的API,用于读取、解析和操作PDF文件...
- **数据存储**:在大数据分析或云存储服务中,压缩图片可以节省存储空间。 - **移动应用**:对于移动设备,由于内存和存储空间有限,图片压缩是必不可少的。 - **图像处理**:在进行批量图片处理或自动化工作流...
除了基本的尺寸压缩,还可以利用JPEG的压缩级别来进一步优化。在`javax.imageio.ImageWriteParam`中,可以通过设置`setQuality()`方法调整质量因子,从而控制压缩程度。 在“PicDemo”这个项目中,可能包含了实现...
在Java编程中,图片处理是一项常见的任务,包括图片的压缩和裁剪。在这个场景中,我们关注的是如何实现“图片等比压缩后裁剪”。等比压缩是指保持原图宽高比例进行压缩,以避免图像失真,而裁剪则是根据特定需求去除...
`将图片尺寸不变,压缩图片文件大小。这里的`outputQuality`方法用来设置图片的质量,参数越小,图片的质量越低,但是文件大小也越小。 在实际应用中,我们可以使用以下代码来实现上传图片并生成缩略图: ```java ...
在Java编程语言中,处理图片是一项常见的任务,包括调整图片大小、等比例缩放、裁剪、压缩以及添加水印等。以下将详细介绍这些知识点: 1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image....
本篇文章将深入探讨如何使用Java来实现GIF和JPEG(JPG)格式图片的压缩,以及如何控制压缩率。我们将主要关注两个关键库:Java标准库(Java SE)中的`javax.imageio`包和第三方库如Apache Commons Imaging (以前称为...
1. **图片压缩**:将图片压缩至指定尺寸,保持原始宽高比。 ```java import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.builders.ThumbnailParameterBuilder; import ...
"图片按照指定宽度或高度等比例压缩图片以及裁剪图片"这个主题涉及到图像处理的关键技术,包括图像缩放和裁剪。接下来,我们将深入探讨这两个概念。 首先,**等比例压缩图片**是保持图片原有宽高比的情况下调整图片...