java图片高清压缩(1)
JAVA 图片 压缩 高清
2023-09-14 09:04:36 时间
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class NarrowImage {
* @param im
* 原始图像
* @param resizeTimes
* 倍数,比如0.5就是缩小一半,0.98等等double类型
* @return 返回处理后的图像
public BufferedImage zoomImage(String src) {
BufferedImage result = null;
try {
File srcfile = new File(src);
if (!srcfile.exists()) {
System.out.println("文件不存在");
BufferedImage im = ImageIO.read(srcfile);
/* 原始图像的宽度和高度 */
int width = im.getWidth();
int height = im.getHeight();
//压缩计算
float resizeTimes = 0.3f; /*这个参数是要转化成的倍数,如果是1就是转化成1倍*/
/* 调整后的图片的宽度和高度 */
int toWidth = (int) (width * resizeTimes);
int toHeight = (int) (height * resizeTimes);
/* 新生成结果图片 */
result = new BufferedImage(toWidth, toHeight,
BufferedImage.TYPE_INT_RGB);
result.getGraphics().drawImage(
im.getScaledInstance(toWidth, toHeight,
java.awt.Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream newimage = new FileOutputStream(fileFullPath); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(im); /* 压缩质量 */ jep.setQuality(0.9f, true); encoder.encode(im, jep); /*近JPEG编码*/ newimage.close(); return true; } catch (Exception e) { return false;
NarrowImage narrowImage = new NarrowImage(); narrowImage.writeHighQuality(narrowImage.zoomImage(inputFoler), outputFolder);
Java哈夫曼编码实现压缩与解压 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。
java使用ZipOutputStream对文件进行压缩 java中常用ZipOutStream进行文件的压缩,用ZipInputStream对文件进行解压,zip相对于其他的文件的io稍有一点点不同的就是:它的内部就是一个小型的文件系统。如果是一个文件夹所有文件都是文档二不是文件夹。那还好办直接操作。如果涉及到文件夹和文档的不固定分布。那就需要仔细考虑下。这里用递归进行遍历。
1078 字符串压缩与解压(JAVA) 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复,就原样输出。例如 aba 压缩后仍然是 aba。
Java实战:指定大小分组压缩文件夹里面的文件案例 今天给大家分享一个自己写的java实战的小案例,主要功能是实现指定一个文件夹,然后分组压缩里面的文件。其实这个案例还是有一定用途的,比如日志文件夹里面有几千个文件,如果我需要给每个压缩包指定10M,把整个文件夹里面的日志文件都进行压缩,这个案例就能够用得上了。
FileOutputStream newimage = new FileOutputStream(fileFullPath); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(im); /* 压缩质量 */ jep.setQuality(0.9f, true); encoder.encode(im, jep); /*近JPEG编码*/ newimage.close(); return true; } catch (Exception e) { return false;
NarrowImage narrowImage = new NarrowImage(); narrowImage.writeHighQuality(narrowImage.zoomImage(inputFoler), outputFolder);
Java哈夫曼编码实现压缩与解压 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。
java使用ZipOutputStream对文件进行压缩 java中常用ZipOutStream进行文件的压缩,用ZipInputStream对文件进行解压,zip相对于其他的文件的io稍有一点点不同的就是:它的内部就是一个小型的文件系统。如果是一个文件夹所有文件都是文档二不是文件夹。那还好办直接操作。如果涉及到文件夹和文档的不固定分布。那就需要仔细考虑下。这里用递归进行遍历。
1078 字符串压缩与解压(JAVA) 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复,就原样输出。例如 aba 压缩后仍然是 aba。
Java实战:指定大小分组压缩文件夹里面的文件案例 今天给大家分享一个自己写的java实战的小案例,主要功能是实现指定一个文件夹,然后分组压缩里面的文件。其实这个案例还是有一定用途的,比如日志文件夹里面有几千个文件,如果我需要给每个压缩包指定10M,把整个文件夹里面的日志文件都进行压缩,这个案例就能够用得上了。
相关文章
- java跨域访问四种方式_java如何解决跨域问题
- java 图片压缩
- java启动器_JAVA基础:Java 启动器如何查找类
- c++和java哪个好学_c++语言和Java语言,初学者该如何选择?「建议收藏」
- java冒泡排序经典代码_Java 8大经典排序算法(含源代码),必须收藏!
- 图解最短路径之弗洛伊德算法(Java实现)「建议收藏」
- 【说站】java使用wait改变线程状态
- idea创建java项目的步骤_Java为什么新建不了项目
- IntelliJ IDEA 工程Java文件上红色的无效符详解程序员
- Java实现 图片水印或者文字水印详解编程语言
- MySQL与Java的无缝互联(java与mysql连接)
- Java 图片矢量压缩详解编程语言
- 【ACM】大数阶乘 – Java BigInteger实现详解编程语言
- 机制使用Redis和Java实现到期机制(redisjava过期)
- 使用Java实现Redis数据存储(redis集成java)
- 处理Java程序中使用Redis实现过期处理(redisjava过期)
- 处理Java处理Redis缓存过期关键技术研究(redisjava过期)
- 处理Redis Java: Handling Expiration Through Strategy and Best Practices(redisjava过期)
- Linux系统中下载Java的方法(linux下java下载)
- 进程Linux下创建多个Java进程的简易方法(linux 多个java)
- 久MySQL与Java:谱写长久的协作伙伴情谊(mysqljava长)
- 通往成功的道路通过Java考证Oracle获取更高的成就(java考证oracle)
- 解决java压缩图片透明背景变黑色的问题
- java实现gif动画效果(java显示动态图片)