java后台多图预览,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/n/158401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-19 00:41
下一篇 2024-11-19 00:41

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • 用Python绘制酷炫图片

    在本篇文章中,我们将展示如何使用Python绘制酷炫的图片。 一、安装Python绘图库 在使用Python绘制图片之前,我们需要先安装Python绘图库。Python有很多绘图库…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29

发表回复

登录后才能评论