導航:首頁 > 文件處理 > java圖片壓縮質量

java圖片壓縮質量

發布時間:2023-11-18 20:21:39

java實現gif圖片壓縮成型的jar包或者java可以調用的插件

需要用到一個java-image-scaling-0.8.5.jar包。這種需要設定寬高(我是按照原來比例走的。寬是按照兩個A4的寬度走)。
優點:簡單,格式支持還行。
缺點:寬高需要設定。

⑵ 求一個Java無損壓縮圖片的示例,把原圖片復制到指定目錄,按原圖比例改變尺寸,不影響圖片質量。

圖片壓縮就是講圖片的內存變小 對象數坑定有印象 你將壓縮率改小一點 調整一下壓縮率 到自己滿意為止

⑶ 問題:java 壓縮圖片 要求:只壓縮像素 注意:要理解像素的概念,最好有個例子

看看這個是否對你有用

⑷ java如何實現壓縮圖片且保留圖片原文件屬性,比如拍攝日期

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;public class Zip {
// 壓縮
public static void zip(String zipFileName, String inputFile)
throws Exception {
File f = new File(inputFile);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName));
zip(out, f, null);
System.out.println("zip done");
out.close();
} private static void zip(ZipOutputStream out, File f, String base)
throws Exception {
System.out.println("zipping " + f.getAbsolutePath());
if (f != null && f.isDirectory()) {
File[] fc = f.listFiles();
if (base != null)
out.putNextEntry(new ZipEntry(base + "/"));
base = base == null ? "" : base + "/";
for (int i = 0; i < fc.length; i++) {
zip(out, fc[i], base + fc[i].getName());
}
} else {
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
while ((b = in.read()) != -1)
out.write(b);
in.close();
}
} // 解壓
public static void unzip(String zipFileName, String outputDirectory)
throws Exception {
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
ZipEntry z;
while ((z = in.getNextEntry()) != null) {
String name = z.getName();
if (z.isDirectory()) {
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
System.out.println("MD " + outputDirectory + File.separator
+ name);
} else {
System.out.println("unziping " + z.getName());
File f = new File(outputDirectory + File.separator + name);
f.createNewFile();
FileOutputStream out = new FileOutputStream(f);
int b;
while ((b = in.read()) != -1)
out.write(b);
out.close();
}
}
in.close();
} public void deleteFolder(File dir) {
File filelist[] = dir.listFiles();
int listlen = filelist.length;
for (int i = 0; i < listlen; i++) {
if (filelist[i].isDirectory()) {
deleteFolder(filelist[i]);
} else {
filelist[i].delete();
}
}
dir.delete();// 刪除當前目錄
} public static void main(String[] args) {
try {
// TestZip t = new TestZip();
// t.zip("c:\\test.zip","c:\\test");
// t.unzip("c:\\test.zip","c:\\test2");
} catch (Exception e) {
e.printStackTrace(System.out);
}
}
}

⑸ java實現圖片預覽功能,可以顯示縮列圖,具有上下頁的功能求技術支持

把圖片按照規定的比例壓縮,然後保存至FTP,列表讀取縮略圖,單擊顯示原圖。

/**
*壓縮圖片方法一(高質量)
*@paramoldFile將要壓縮的圖片
*@paramwidth壓縮寬
*@paramheight壓縮高
*@paramsmallIcon壓縮圖片後,添加的擴展名(在圖片後綴名前添加)
*@paramquality壓縮質量范圍:<i>0.0-1.0</i>高質量:<i>0.75</i>中等質量:<i>0.5</i>低質量:<i>0.25</i>
*@parampercentage是否等比壓縮若true寬高比率將將自動調整
*/
publicstaticvoidcompressImage(StringoldFile,intwidth,intheight,StringsmallIcon,
floatquality,booleanpercentage){
try{
Filefile=newFile(oldFile);

//驗證文件是否存在
if(!file.exists())
thrownewFileNotFoundException("找不到原圖片!");

//獲取圖片信息
BufferedImageimage=ImageIO.read(file);
intorginalWidth=image.getWidth();
intorginalHeight=image.getHeight();

//驗證壓縮圖片信息
if(width<=0||height<=0||!Pattern.matches("^[1-9]\d*$",String.valueOf(width))
||!Pattern.matches("^[1-9]\d*$",String.valueOf(height)))
thrownewException("圖片壓縮後的高寬有誤!");

//等比壓縮
if(percentage){
doublerate1=((double)orginalWidth)/(double)width+0.1;
doublerate2=((double)orginalHeight)/(double)height+0.1;
doublerate=rate1>rate2?rate1:rate2;
width=(int)(((double)orginalWidth)/rate);
height=(int)(((double)orginalHeight)/rate);
}

//壓縮後的文件名
StringfilePrex=oldFile.substring(0,oldFile.lastIndexOf('.'));
StringnewImage=filePrex+smallIcon+oldFile.substring(filePrex.length());

//壓縮文件存放位置
FilesavedFile=newFile(newImage);

//創建一個新的文件
savedFile.createNewFile();

//創建原圖像的縮放版本
Imageimage2=image.getScaledInstance(width,height,Image.SCALE_AREA_AVERAGING);

//創建數據緩沖區圖像
BufferedImagebufImage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

//創建一個Graphics2D
Graphics2Dg2=bufImage.createGraphics();

//重繪圖像
g2.drawImage(image2,0,0,width,height,null);
g2.dispose();

//過濾像素矩陣
float[]kernelData={
-0.125f,-0.125f,-0.125f,
-0.125f,2,-0.125f,-0.125f,
-0.125f,-0.125f};
Kernelkernel=newKernel(3,3,kernelData);

//按核數學源圖像邊緣的像素復制為目標中相應的像素輸出像素
ConvolveOpcOp=newConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);

//轉換像素
bufImage=cOp.filter(bufImage,null);

FileOutputStreamout=newFileOutputStream(savedFile);
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParamparam=encoder.getDefaultJPEGEncodeParam(bufImage);

//設置壓縮質量
param.setQuality(quality,true);
encoder.encode(bufImage,param);

out.close();
System.out.println(newImage);
}catch(Exceptione){
e.printStackTrace();
System.out.println("壓縮失敗!"+e.getMessage());
}
}

⑹ java生成pdf文件時為什麼圖片沒有原來那麼清晰了,這個問題怎麼解決

PDF列印機設置的問題,你選的標准列印就會壓縮圖片,你選高質量、印刷質量之類的就可以了。

閱讀全文

與java圖片壓縮質量相關的資料

熱點內容
文件夾英文名排序 瀏覽:48
西二旗最高程序員 瀏覽:93
台灣寫真內部加密無刪減視頻 瀏覽:826
在線照片壓縮變小 瀏覽:654
隱藏配置文件夾 瀏覽:186
php分布式模塊化開發 瀏覽:389
wula是什麼app 瀏覽:832
豌豆莢里怎麼降低安卓手機版本 瀏覽:371
桌面的文件夾怎樣解散 瀏覽:796
貴州貴陽山洞伺服器雲空間 瀏覽:221
年薪48萬程序員老公 瀏覽:917
使用預構建的python 瀏覽:532
加密對沖基金交易有限公司 瀏覽:357
煙台製冷壓縮機價格 瀏覽:249
平板能用騰訊雲伺服器嗎 瀏覽:867
有js基礎學python 瀏覽:599
程序員可以回老家蓋房子嗎 瀏覽:555
pythonserial波特率 瀏覽:578
pc我的世界國際服怎麼下伺服器 瀏覽:144
udp凈荷加密 瀏覽:928