日期:2014-05-17  浏览次数:20640 次

图片相册 缩略图是怎么做的
我要做一个相册因为图片是高清的,所以size可能比较大。
我想要有类似qq空间的那种有小图片的相册,如果点开之后才会load原图。
如果直接把本页所有图片下载下来,然后用js缩小是可以,但估计同时下载所有图片会要很长时间。

想知道那些小的缩略图是怎么来的。 是提前在上传图片的时候就把缩略图一起上传, 还是在client request的时候 server读取原图,然后做图片处理生成的小图片,还是用其他的什么办法。

------解决方案--------------------
是上传后,server 根据原图生成缩略图。服务器存原图和缩略图。预览的时候给客户的缩略图即可。
------解决方案--------------------
诚如楼上所说。
贴一个图片压缩工具类,非原创。

package com.uestc.babasport.util;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**
 * 图像压缩工具
 * @author lihuoming@sohu.com
 *
 */
public class ImageSizer {
    public static final MediaTracker tracker = new MediaTracker(new Component() {
        private static final long serialVersionUID = 1234162663955668507L;} 
    );
    /**
     * @param originalFile 原图像
     * @param resizedFile 压缩后的图像
     * @param width 图像宽
     * @param format 图片格式 jpg, png, gif(非动画)
     * @throws IOException
     */
    public static void resize(File originalFile, File resizedFile, int width, String format) throws IOException {
        if(format!=null && "gif".equals(format.toLowerCase())){
         resize(originalFile, resizedFile, width, 1);
         retu