本文目錄一覽:
- 1、java實現圖片預覽功能,可以顯示縮列圖,具有上下頁的功能求技術支持
- 2、如何用java實現圖片預覽功能,求代碼
- 3、java中多張blob圖片如何在前台預覽,要求這些圖片同時顯示,最好有代碼
- 4、flex+java實現圖片預覽
- 5、用java寫上傳圖片時,怎麼實現預覽功能?
java實現圖片預覽功能,可以顯示縮列圖,具有上下頁的功能求技術支持
把圖片按照規定的比例壓縮,然後保存至FTP,列表讀取縮略圖,單擊顯示原圖。
/**
* 壓縮圖片方法一(高質量)
* @param oldFile 將要壓縮的圖片
* @param width 壓縮寬
* @param height 壓縮高
* @param smallIcon 壓縮圖片後,添加的擴展名(在圖片後綴名前添加)
* @param quality 壓縮質量 範圍:i0.0-1.0/i 高質量:i0.75/i 中等質量:i0.5/i 低質量:i0.25/i
* @param percentage 是否等比壓縮 若true寬高比率將將自動調整
*/
public static void compressImage(String oldFile, int width, int height, String smallIcon,
float quality, boolean percentage) {
try {
File file = new File(oldFile);
// 驗證文件是否存在
if(!file.exists())
throw new FileNotFoundException(“找不到原圖片!”);
// 獲取圖片信息
BufferedImage image = ImageIO.read(file);
int orginalWidth = image.getWidth();
int orginalHeight = image.getHeight();
// 驗證壓縮圖片信息
if (width = 0 || height = 0 || !Pattern.matches(“^[1-9]\\d*$”, String.valueOf(width))
|| !Pattern.matches(“^[1-9]\\d*$”, String.valueOf(height)))
throw new Exception(“圖片壓縮後的高寬有誤!”);
// 等比壓縮
if (percentage) {
double rate1 = ((double) orginalWidth) / (double) width + 0.1;
double rate2 = ((double) orginalHeight) / (double) height + 0.1;
double rate = rate1 rate2 ? rate1 : rate2;
width = (int) (((double) orginalWidth) / rate);
height = (int) (((double) orginalHeight) / rate);
}
// 壓縮後的文件名
String filePrex = oldFile.substring(0, oldFile.lastIndexOf(‘.’));
String newImage = filePrex + smallIcon + oldFile.substring(filePrex.length());
// 壓縮文件存放位置
File savedFile = new File(newImage);
// 創建一個新的文件
savedFile.createNewFile();
// 創建原圖像的縮放版本
Image image2 = image.getScaledInstance(width, height, Image.SCALE_AREA_AVERAGING);
// 創建數據緩衝區圖像
BufferedImage bufImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 創建一個Graphics2D
Graphics2D g2 = 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 };
Kernel kernel = new Kernel(3, 3, kernelData);
// 按核數學源圖像邊緣的像素複製為目標中相應的像素輸出像素
ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
// 轉換像素
bufImage = cOp.filter(bufImage, null);
FileOutputStream out = new FileOutputStream(savedFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufImage);
// 設置壓縮質量
param.setQuality(quality, true);
encoder.encode(bufImage, param);
out.close();
System.out.println(newImage);
} catch (Exception e) {
e.printStackTrace();
System.out.println(“壓縮失敗!” + e.getMessage());
}
}
如何用java實現圖片預覽功能,求代碼
使用兩種不同的方法實現圖片預覽功能
Java代碼
BODY
script language=”javascript”
function ShowImage(path){
document.all.divShow.filters.item(“DXImageTransform.Microsoft.AlphaImageLoader”).src = path;
}
function test(){
document.all.showimg.src=document.all.file1.value;
}
/script
INPUT style=”Z-INDEX: 101; LEFT: 232px; POSITION: absolute; TOP: 272px” type=”file”onchange=”ShowImage(this.value)”
div id=”divShow” style=”FILTER:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);WIDTH:274px;HEIGHT:100px”
input type=”file” id=”file1″ onchange=”test()”br/
img id=”showimg” style=”width:200px;height:200px;”
/BODY
java中多張blob圖片如何在前台預覽,要求這些圖片同時顯示,最好有代碼
//您好,提問者:
比如您後台查詢的是個List集合數組,前台接受。
ListString list = new ArrayListString(); //import 你懂的
list.add(“D:\\xx.jpg”);//我不是查詢數據庫,手動添加圖片地址,你也懂的
list.add(“D:\\xx1.jpg”);
//這個時候如果struts2的話list是public有set get的話肯定前台能拿到
//如果不是就放到request.setAttribute(“list”,list);中
這下面是頁面代碼:
%
List list = request.getAttribute(“list”);
for(int i = 0; i list.size(); i++){%
img src=”%=list.get(i)%”/
%}%
flex+java實現圖片預覽
我試着理解一下你的想法:
感覺你是想在圖片預覽的時候,需要用很小的帶寬,將圖片顯示出來,而不是真正的在這個時候將真正的圖片讀取出來。
所以,建議,在預覽的,你的source需要使用請求後台,將圖片壓縮,然後將壓縮之後,文件體積相對較小的流打回前端顯示。
不知道能否解決你的問題。
PS:只要在瀏覽器中顯示任何的東西,都是需要通過http的協議放入到本地的緩存目錄中的,不存在真正的遠程顯示。
用java寫上傳圖片時,怎麼實現預覽功能?
圖片上傳後在網頁上直接讀取上傳後的地址進行預覽,就是說這個時候圖片已經上傳到服務器了,如果要寫的嚴謹一些,可以在預覽後進行保存操作,如果不保存,則再寫一條語句把上傳上去的文件刪除
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/158401.html