❶ java上傳圖片 生成縮略圖,如果上傳的圖片尺寸比較小就壓縮處理
//將圖按比例縮小。
public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
// targetW,targetH分別表示目標長和寬
int type = source.getType();
BufferedImage target = null;
double sx = (double) targetW / source.getWidth();
double sy = (double) targetH / source.getHeight();
//這里想實現在targetW,targetH范圍內實現等比縮放。如果不需要等比縮放
//則將下面的if else語句注釋即可
if(sx>sy)
{
sx = sy;
targetW = (int)(sx * source.getWidth());
}else{
sy = sx;
targetH = (int)(sy * source.getHeight());
}
if (type == BufferedImage.TYPE_CUSTOM) { //handmade
ColorModel cm = source.getColorModel();
WritableRaster raster = cm.(targetW, targetH);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else
target = new BufferedImage(targetW, targetH, type);
Graphics2D g = target.createGraphics();
//smoother than exlax:
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY );
g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return target;
}
public static void saveImageAsJpg (String fromFileStr,String saveToFileStr,int width,int hight)
throws Exception {
BufferedImage srcImage;
// String ex = fromFileStr.substring(fromFileStr.indexOf("."),fromFileStr.length());
String imgType = "JPEG";
if (fromFileStr.toLowerCase().endsWith(".png")) {
imgType = "PNG";
}
// System.out.println(ex);
File saveFile=new File(saveToFileStr);
File fromFile=new File(fromFileStr);
srcImage = ImageIO.read(fromFile);
if(width > 0 || hight > 0)
{
srcImage = resize(srcImage, width, hight);
}
ImageIO.write(srcImage, imgType, saveFile);
}
public static void main (String argv[]) {
try{
//參數1(from),參數2(to),參數3(寬),參數4(高)
saveImageAsJpg("C:\\Documents and Settings\\xugang\\桌面\\tmr-06.jpg",
"C:\\Documents and Settings\\xugang\\桌面\\2.jpg",
120,120);
} catch(Exception e){
e.printStackTrace();
}
}
❷ 用java程序 比較圖片
二樓也太誇張了點,應該是老師出的題目吧? 兩張圖片大小一致吧? 你用下面的簡單方法即可:
按坐標比較RBG值,相同的話 Right+=1; 不同剛 Wrong+=1;
最後判斷Right/(總點數),如果大於80%,給出結論相同,否則不同.
❸ java 圖片上傳,圖片上傳是上傳到哪裡比較好伺服器上還是資料庫
上傳到伺服器上會比較好,資料庫可以記錄一些必要的信息,比如文件的名稱,類型(擴展名),大小,創建時間及誰的文件等等;如果把文件放入資料庫,讀寫性能不如文件系統,還會加大資料庫的壓力。放到伺服器上注意要設計好一個文件結構,不然以後一個文件夾里有成千上萬個文件,打開那個文件夾就要好久,更不用說查找和下載了。
❹ java中如何判斷imageicon中的兩張圖片相等。
ImageIcon類裡面本身沒有提供圖片比較的方法
如果樓主是想比較ImageIcon的來源是不是一樣
最好是自己程序裡面記錄下來圖片的Url或者文件地址
根據自己保存的來源來判斷一不一樣
如果是想判斷兩張來源不同的圖片是不是相等
那就得用到圖像判斷了
可以從ImageIcon中把圖片去出來用getImage()獲得到Image對象
把Image對象轉成BufferedImage對象
然後比較每個像素點的顏色
有不一樣的就說明不是一張圖片了
都很復雜
樓主能不能說下想要做的是什麼
❺ 頁面圖片載入速度比較慢,有什麼優化的方法嗎,請提供下,最好是java的 是否可以用緩存框架
跟緩存什麼的沒關系。
跟圖片大小,網速、帶寬 有關
圖片不能太大,一般網站都會對上傳的 圖片進行縮略,壓縮處理
一般都會把圖片處理成三或四 種規格:縮略圖,中圖,大圖,原圖
不要把原圖直接放在頁面上,根據需求盡量用最小的圖。 這樣頁面載入就會很快。
不要用TOMCAT壓縮圖片,會很占伺服器資源的。而且大部分圖片都是已經壓縮過的只是像素太高,實際頁面顯示的時候根本不需要太高的像素,主要是要對圖片像素大小進行處理。
怎麼實現你可以搜一下java 圖片處理 圖片縮略
❻ 如何用JAVA對比兩張圖片的內容是否一樣。
如果杯子在照片里的大小不同也不好比較,所以很難實現到實際應用當中
❼ java 對比圖片相似度的演算法。。說說想法也行
每張圖分成四塊,將每部分的圖片混成一種純色,對比這四個純色可以篩掉大部分的圖片
❽ java 圖片里冒泡排序解析中,為什麼是比較3次
思考一下,A B兩個,A>B,如果在冒泡排序中,將B移動到A,需要做的操作是:
使用中間變數記錄A、將B賦給A、將中間變數賦給B
這樣算起來就是3次。