`
dyyaries
  • 浏览: 80702 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

贴一个生成缩略图的类

    博客分类:
  • Java
阅读更多
  1. public class ImageEncoder {     
  2.     public BufferedImage resize(BufferedImage source, int targetW,  
  3.             int targetH) {  
  4.         // 长和宽   
  5.         int type = source.getType();  
  6.         BufferedImage target = null;  
  7.         double sx = (double) targetW / source.getWidth();  
  8.         double sy = (double) targetH / source.getHeight();  
  9.         // 等比缩放   
  10.         if (sx > sy) {  
  11.             sx = sy;  
  12.             targetW = (int) (sx * source.getWidth());  
  13.         } else {  
  14.             sy = sx;  
  15.             targetH = (int) (sy * source.getHeight());  
  16.         }  
  17.         if (type == BufferedImage.TYPE_CUSTOM) {   
  18.             ColorModel cm = source.getColorModel();  
  19.             WritableRaster raster = cm.createCompatibleWritableRaster(targetW,targetH);  
  20.             boolean alphaPremultiplied = cm.isAlphaPremultiplied();  
  21.             target = new BufferedImage(cm, raster, alphaPremultiplied, null);  
  22.         } else{  
  23.             target = new BufferedImage(targetW, targetH, type);  
  24.         }  
  25.         Graphics2D g = target.createGraphics();  
  26.         // 开始画图   
  27.         g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);  
  28.         g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));  
  29.         g.dispose();  
  30.         return target;  
  31.     }     
  32.       
  33.     public BufferedImage getBufferedImage(String image,int width,int height){  
  34.         try {  
  35.             BufferedImage srcImage = ImageIO.read(new File(image));  
  36.             if (width > 0 || height > 0) {  
  37.                 srcImage = resize(srcImage, width, height);  
  38.             }  
  39.             return srcImage;  
  40.         } catch (IOException e) {  
  41.             e.printStackTrace();  
  42.         }  
  43.         return null;  
  44.     }  
  45. }  

 

 

 

Servlet中使用实例:(/ImageProc)

 

  1. protected void doPost(HttpServletRequest request, HttpServletResponse response)   
  2.         throws ServletException, IOException {  
  3.         synchronized (this) {  
  4.             String img = request.getParameter("img");  
  5.             int width = Integer.parseInt(request.getParameter("width"));  
  6.             int height = Integer.parseInt(request.getParameter("height"));  
  7.             BufferedImage bi = ie.getBufferedImage(img, width, height);  
  8.             ServletOutputStream sos = response.getOutputStream();  
  9.             ImageIO.write(bi, "jpg", sos);  
  10.         }  
  11.     }  

 

JSP页面使用<img/>标签指定src为这个servlet的urlparttern就可以了

 

<img src="<%=contextPath%>/ImageProc?img=D:/DEMO.jpg&width=160&height=200"/>

分享到:
评论

相关推荐

    缩略图插件

    总之,“缩略图插件”是一个实用的工具,尤其对于需要处理多种图像和3D格式的IT专业人士来说,它简化了文件管理,提高了工作效率,并且增强了工作流程的可视性。无论是个人使用还是团队协作,这种插件都是必不可少的...

    贴内图片随机缩略图插件for Discuz! 7.2 GBK UTF8 BIG5.zip

    《贴内图片随机缩略图插件 for Discuz! 7.2》是一款专为Discuz! 7.2论坛平台设计的增强型插件,适用于GBK、UTF8以及BIG5编码环境。此插件旨在提升论坛用户体验,尤其是在查看帖子时,通过鼠标悬停在图片图标上,用户...

    dds缩略图和ACDSEE DDS插件

    综上所述,这个压缩包文件可能包含一个使Windows系统能够显示DDS文件缩略图的工具,以及一个使ACDSee软件支持DDS格式的插件。这些工具的使用,将极大地便利3D图形设计师和游戏开发者在工作中对DDS文件的管理和预览,...

    Android 实现图片生成卷角和圆角缩略图的方法

    1. 创建一个新的Bitmap对象(roundThumbBitmap),用于存储圆角缩略图。 2. 初始化一个Canvas对象,将这个新Bitmap作为绘图表面。 3. 创建一个Paint对象,设置颜色(如红色)并开启抗锯齿,以确保圆角平滑。 4. 使用...

    视屏文件缩略图不显示图片.pdf

    针对这个问题,一个常见的解决办法是修改注册表。给出的“禁用视频预览.reg”和“恢复视频预览.reg”文件的内容实际上就是对注册表进行编辑的脚本。 禁用视频预览的脚本会删除与特定视频格式关联的缩略图显示项,...

    WWW2Image1.7┊汉化绿色注册版┊主要用途是网页保存为图片包括缩略图

    生成缩略图功能则允许用户快速预览网页的大致内容。缩略图通常较小,但能展示网页的主要结构和内容,便于用户快速浏览和比较多个网页。这一特性在处理大量网页信息时尤为高效,比如在做网页设计参考、网站目录索引...

    simple-image-sizes:简单图像大小是WordPress的插件,它允许您设置新的缩略图大小并通过ajax重新生成它们

    简单图像尺寸 贡献者: Rahe 捐赠链接: : 标签:图像,图像,自定义尺寸,自定义图像,缩略图重新生成,缩略... 我添加了一个计时器,以便在重新生成缩略图时可以大致知道重新生成的时间。 我已经改进了php和javas

    .Net 实现图片缩略图上传通用方法

    日常开发中,经常碰到图片上传的需求,尤其在商城系统开发的时候,商品列表商品图片展示如果使用高清原图,由于高清原图比较大,加载原图时间会大大增加,直接... /// 生成缩略图或质量压缩 /// /// &lt;param na

    Laravel开发-laravel-video-embed

    在本文中,我们将深入探讨基于Laravel框架的"Laravel开发-laravel-video-embed"项目,这是一个专门为集成Dereuromark/MediaEmbed和生成缩略图功能设计的Laravel包。我们将详细介绍如何利用这个包来增强您的 Laravel ...

    谷歌看图插件 for Discuz!7.0.zip

    论坛图贴插件,它是一个基于 Flash 技术的丰富互联网应用程序,目的在于给 Discuz! 论坛的图贴一种崭新的浏览体验。图贴阅读插件为 Discuz! 中的图贴提供了一种以图片为中心的视图,用更多的空间更好地集中展示帖子...

    基于PHP的贴图库wordpress插件(免费图片外链)php版.zip

    2. **图片处理**:插件可能包含图片缩略图生成、格式转换等功能,以优化图片大小和加载速度。 3. **外链生成**:上传成功后,插件会生成一个指向图片的URL,这个URL可以作为外链在其他地方使用。 4. **安全与权限*...

    200款超精美节日贺卡在线代码生成器(精编版).pdf

    1. 选择贺卡:用户可以选择一组(16 款)贺卡的缩略图,如果用户要制作的贺卡在此组中,请直接点击贺卡缩略图,转“ 填空” 。否则,点击“ 上一组” 或“ 下一组” 或修改输入当前组号,寻找您需要制作的贺卡。 2....

    littleprince-backendservice:贴图小王子图床服务器端代码

    接收从贴图小王子App上传的图片,生成缩略图,并将原图和缩略图分别存到不同的文件夹中。 支持查询接收到的原图及其缩略图的信息。 支持浏览器直接上传图片到服务器。 功能测试 贴图小王子酷安商城下载链接(你可以...

    PHP实例开发源码—贴图库emlog插件(免费图片外链)php版.zip

    - **缩略图生成**:为了节省服务器带宽和优化用户体验,插件可能包含生成缩略图的功能。PHP的GD库或Imagick库可以用于图片的裁剪、缩放等操作。 - **图片格式转换**:为了兼容不同的浏览器和设备,插件可能需要将...

    用ImageMagick命令行处理图片

    3. **批量处理**:对于一个目录下的所有图片,可以编写简单的脚本来批量生成缩略图,例如: ``` for img in `ls *.jpg` do convert -sample 25%x25% ${img} thm${img} done ``` 这条脚本将对所有JPG文件生成...

    PPT制作技巧-微信小视频发朋友圈方法.docx

    然后,当你找到想要转发到朋友圈的视频时,长按并收藏它,接着将其转发给任意一个人或群聊,目的是生成缩略图。这一步很重要,因为没有缩略图,视频将无法正常显示在朋友圈。 接下来,进入朋友圈,点击右上角的相机...

    一般网站系统源码下载

    主要功能: ·首页、 分类、新闻、专题可生成静态页面 ·生成速度可在每分钟30页到2000页之间选择 首页静态文件自动定时生成 ·可视化的模板/风格设计 ...·自动取新闻内第一张适合的本地图片生成缩略图

    微信小视频发朋友圈方法.pdf

    **步骤二:生成缩略图** 在微信中找到你想要转发的小视频,长按视频,选择“收藏”。然后将收藏的视频转发给任意一个联系人或群聊,这一步是为了生成视频的缩略图。 **步骤三:临时保存小视频** 进入朋友圈,点击右...

    PHP实例开发源码-贴图库云图床 php版.zip

    3. **图片处理**:可以使用GD库或Imagick扩展来处理图片,如生成缩略图、调整尺寸、裁剪等。 4. **URL生成**:为每个上传的图片生成一个唯一的URL,方便用户分享和访问。 5. **会话管理**:如果支持用户登录,那么...

Global site tag (gtag.js) - Google Analytics