本文共 4120 字,大约阅读时间需要 13 分钟。
优化后的文章内容如下:(注:去除所有HTML标签,仅保留纯文本内容)---图片压缩工具类(通用)本Java类可将支持JPEG、BMP、PNG、GIF格式的图片文件进行等比或非等比缩放处理,生成缩略图。该工具主要用于将大图片文件转换为适当大小的可显示图片,常用于Web展示或存储缩略版图片。以下是主要功能及其实现方法:基本配置说明1. 输入路径* `inputDir`:输入图片所在目录路径* `inputFileName`:输入图片文件名2. 输出路径* `outputDir`:输出缩略图所在目录路径* `outputFileName`:输出缩略图文件名3. 缩略图尺寸* `outputWidth`:默认生成的缩略图宽度,默认为100像素* `outputHeight`:默认生成的缩略图高度,默认为100像素4. 缩放模式* `proportion`:是否启用等比缩放,默认启用(true)操作方法1. 类对象初始化```javapublic CompressPic() { inputDir = ""; outputDir = ""; inputFileName = ""; outputFileName = ""; outputWidth = 100; outputHeight = 100;} public void setInputDir(String inputDir) { this.inputDir = inputDir;} public void setOutputDir(String outputDir) { this.outputDir = outputDir;} public void setInputFileName(String inputFileName) { this.inputFileName = inputFileName;} public void setOutputFileName(String outputFileName) { this.outputFileName = outputFileName;} public void setOutputWidth(int outputWidth) { this.outputWidth = outputWidth;} public void setOutputHeight(int outputHeight) { this.outputHeight = outputHeight;} public void setWidthAndHeight(int width, int height) { this.outputWidth = width; this.outputHeight = height;} 图片处理功能
public long getPicSize(String path) { File file = new File(path); return file.length();} public String compressPic() { try { File file = new File(inputDir + inputFileName); if (!file.exists()) { throw new Exception("输入图片不存在"); } BufferedImage img = ImageIO.read(file); if (img.getWidth(null) == -1) { System.out.println("图片无法加载,请稍后重试"); return "no"; } // 确定缩放比例 if (proportion == true) { double rateWidth = img.getWidth(null) / (outputWidth + 0.1); double rateHeight = img.getHeight(null) / (outputHeight + 0.1); double rate = Math.min(rateWidth, rateHeight); int newWidth = (int) (img.getWidth(null) / rate); int newHeight = (int) (img.getHeight(null) / rate); } else { int newWidth = outputWidth; int newHeight = outputHeight; } // 生成缩略图 BufferedImage thumbnail = new BufferedImage( newWidth, newHeight, BufferedImage.TYPE_INT_RGB ); Graphics imgGraphics = thumbnail.getGraphics(); imgGraphics.drawImage( img.getScaledInstance( newWidth, newHeight, Image.SCALE_SMOOTH ), 0, 0, null ); imgGraphics.dispose(); // 保存缩略图 File outputDirFile = new File(outputDir); if (!outputDirFile.exists()) { outputDirFile.mkdirs(); } File outputesátFile = new File(outputDir + outputFileName); FileOutputStream out = new FileOutputStream( oscillatFile ); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(thumbnail); out.close(); return "ok"; } catch (IOException e) { e.printStackTrace(); } return "no";} 多种调用方式
public String compressPic() { return compressPic("");} public String compressPic(String inputDir, String outputDir, String inputFileName, String outputFileName, int width, int height, boolean proportion) { this.inputDir = inputDir; this.outputDir = outputDir; this.inputFileName = inputFileName; this.outputFileName = outputFileName; this.outputWidth = width; this.outputHeight = height; this.proportion = proportion; return compressPic();} 使用说明
inputDir + inputFileNameoutputDir下名为outputFileNameoutputDir不存在,将自动生成此目录注意事项
Image.SCALE_SMOOTH提供了更平滑的缩放效果这样优化后的文档不仅语言更加流畅自然,还方便于搜索引擎优化,具有可读性和可索引性。
转载地址:http://ielvz.baihongyu.com/