java后台多图预览,java实现图片预览

发布时间:2022-11-23

本文目录一览:

  1. java实现图片预览功能,可以显示缩列图,具有上下页的功能求技术支持
  2. 如何用java实现图片预览功能,求代码
  3. java中多张blob图片如何在前台预览,要求这些图片同时显示,最好有代码
  4. flex+java实现图片预览
  5. 用java写上传图片时,怎么实现预览功能?

java实现图片预览功能,可以显示缩列图,具有上下页的功能求技术支持

把图片按照规定的比例压缩,然后保存至FTP,列表读取缩略图,单击显示原图。

/**
 * 压缩图片方法一(高质量)
 * @param oldFile 将要压缩的图片
 * @param width 压缩宽
 * @param height 压缩高
 * @param smallIcon 压缩图片后,添加的扩展名(在图片后缀名前添加)
 * @param quality 压缩质量 范围:0.0-1.0 高质量:0.75 中等质量:0.5 低质量:0.25
 * @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 
        };
        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实现图片预览功能,求代码

使用两种不同的方法实现图片预览功能。

function ShowImage(path) {
    document.all.divShow.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = path;
}
function test() {
    document.all.showimg.src = document.all.file1.value;
}
<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"></div>
<input type="file" id="file1" onchange="test()"><br/>
<img id="showimg" style="width:200px;height:200px;">

java中多张blob图片如何在前台预览,要求这些图片同时显示,最好有代码

比如您后台查询的是一个List集合数组,前台接受。

List<String> list = new ArrayList<String>(); // import 你懂的
list.add("D:\\xx.jpg"); // 我不是查询数据库,手动添加图片地址,你也懂的
list.add("D:\\xx1.jpg");

页面代码:

<%
    List list = request.getAttribute("list");
    for(int i = 0; i < list.size(); i++) {
%>
    <img src="<%=list.get(i)%>" />
<% } %>

flex+java实现图片预览

我试着理解一下你的想法: 感觉你是想在图片预览的时候,需要用很小的带宽,将图片显示出来,而不是真正的在这个时候将真正的图片读取出来。 所以,建议,在预览的时候,你的source需要请求后台,将图片压缩,然后将压缩之后,文件体积相对较小的流打回前端显示。 不知道能否解决你的问题。 PS:只要在浏览器中显示任何的东西,都是需要通过http协议放入到本地的缓存目录中的,不存在真正的远程显示。

用java写上传图片时,怎么实现预览功能?

图片上传后在网页上直接读取上传后的地址进行预览,就是说这个时候图片已经上传到服务器了。如果要写的严谨一些,可以在预览后进行保存操作,如果不保存,则再写一条语句把上传上去的文件删除。