📄 thumbnail.java
字号:
package remote;
import com.sun.image.codec.jpeg.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
public class Thumbnail {
private String inputFile;
private String outputFileName = "thumbnail_";
private String outputFileType = ".jpg";
private String fileLocation = "\\webapps\\remote_temp\\";
private String outputFile = null;
private int preview_width = 130;
private int preview_height = 130;
private int preview_quality = 75;
private String CurrentUser = null;
public Thumbnail(String path,String user){
CurrentUser = user;
init(path,128,128,75);
}
public Thumbnail(String path,String u,int w,int h,int q){
CurrentUser = u;
init(path,w,h,q);
}
private void init(String path,int width, int height, int quality){
inputFile = path;
preview_width = width;
preview_height = height;
preview_quality = quality;
String catalina_home =System.getProperty("catalina.home");
outputFile = catalina_home + fileLocation + outputFileName + CurrentUser + outputFileType;
}
public boolean createPreview(){
boolean ready = false;
try{
// load image from INFILE
Image image = Toolkit.getDefaultToolkit().getImage(inputFile);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
// determine thumbnail size from WIDTH and HEIGHT
int thumbWidth = preview_width;
int thumbHeight = preview_height;
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
if (thumbWidth > imageWidth && thumbHeight > imageHeight){
thumbWidth = imageWidth;
thumbHeight = imageHeight;
}
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(outputFile));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.
getDefaultJPEGEncodeParam(thumbImage);
int quality = preview_quality;
quality = Math.max(0, Math.min(quality, 100));
param.setQuality((float)quality / 100.0f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(thumbImage);
out.close();
System.out.println("Done.");
ready = true;
} catch (Exception e){
e.printStackTrace();
}
return ready;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -