专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > ColdFusion

怎么使用CFML生成图片缩略图文件

发布时间:2010-06-14 17:26:20 文章来源:www.iduyao.cn 采编人员:星星草
如何使用CFML生成图片缩略图文件?
现做一网站,使用CFM,里面有图片显示,图片文件比较大。
想在上传的同时能够自动生成缩略图文件。
用ASP或者PHP可以找到资料,CFM找不到资料。
急求帮助。
------解决方案--------------------
CFMX里,你可以把你写的Java Class方进去, 然后在CFM里调用。

import com.sun.image.codec.jpeg.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;

/**
 * Thumbnail.java (requires Java 1.2+)
 * Load an image, scale it down and save it as a JPEG file.
 * @author Marco Schmidt
 */
public class Thumbnail {
  public static void main(String[] args) throws Exception {
    if (args.length != 5) {
      System.err.println("Usage: java Thumbnail INFILE " +
        "OUTFILE WIDTH HEIGHT QUALITY");
      System.exit(1);
    }
    // load image from INFILE
    Image image = Toolkit.getDefaultToolkit().getImage(args[0]);
    MediaTracker mediaTracker = new MediaTracker(new Container());
    mediaTracker.addImage(image, 0);
    mediaTracker.waitForID(0);
    // determine thumbnail size from WIDTH and HEIGHT
    int thumbWidth = Integer.parseInt(args[2]);
    int thumbHeight = Integer.parseInt(args[3]);
    double thumbRatio = (double)thumbWidth / (double)thumbHeight;
    int imageWidth = image.getWidth(null);
    int imageHeight = image.getHeight(null);
    double imageRatio = (double)imageWidth / (double)imageHeight;
    if (thumbRatio < imageRatio) {
      thumbHeight = (int)(thumbWidth / imageRatio);
    } else {
      thumbWidth = (int)(thumbHeight * imageRatio);
    }
    // draw original image to thumbnail image object and
    // scale it to the new size on-the-fly
    BufferedImage thumbImage = new BufferedImage(thumbWidth, 
      thumbHeight, BufferedImage.TYPE_INT_RGB);
    Graphics2D graphics2D = thumbImage.createGraphics();
    graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
      RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
    // save thumbnail image to OUTFILE
    BufferedOutputStream out = new BufferedOutputStream(new
      FileOutputStream(args[1]));
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    JPEGEncodeParam param = encoder.
      getDefaultJPEGEncodeParam(thumbImage);
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • 3D MAX导出MD2,delphi开发,该如何处理

    3D MAX导出MD2,delphi开发 我用dilphi开发3D游戏,想用3D MAX导出MD2建立关键针动画,然后用dilphi调用关键针,可是现在出现2个问...

  • coldfusion如何整合框架

    coldfusion怎么整合框架? 如题coldfusion怎么整合框架? 有没有例子 谁给讲解下,谢谢! ------解决方案-------------------- 其实,在...

  • coldfusion的正则表达式中文支持如何样

    coldfusion的正则表达式中文支持怎么样? coldfusion的正则表达式中文支持怎么样?有没有问题?我用的的是coldfusion 9 因为要用的一...

  • 求教解决办法

    求教 请问,哪里有GLscene的中文教程,视频也可.谢谢 ------解决方案-------------------- http://technology.jfcms.net/cx/Delp...

  • Provider '80020005',该怎么解决

    Provider '80020005' Provider '80020005' 类型不匹配。 \admin\add_products.asp, line 167 <!--#include file="../i...

  • 小弟我们打开一个网页的原理是什么

    我们打开一个网页的原理是什么? 我觉得是服务器端传输一个文档过来,然后由ie(或者其它的)编译,呈现我们面前的就是我们打开的网页了 -...

  • 小弟我想循环输出一个 cfgrid

    我想循环输出一个 cfgrid rt ------解决方案-------------------- cfgrid有个query属性的。 ------解决方案-----------------...

  • coldfusion解决方案

    coldfusion cf中上传可以控制大小吗?如何控制? ------解决方案-------------------- 上传前可以先得到文件大小,之后再决定是否要上...

  • C# 发送一个网页邮件 如何做

    C# 发送一个网页邮件 怎么做 我用System.Net.Mail;做的,可是它的属性就那么几个。怎么办? ------解决方案-------------------- M...

  • coldfusion 9 连接Access出错?该怎么处理

    coldfusion 9 连接Access出错??? 各位大侠帮忙看看,为何我用coldfusion 9 连接Access时,显示OK,连接Access unicode时却出现以下错误信...

热门推荐: