用java实现print screen,读取位图文件,将位图文件转化位jpeg格式并保存成文件输出!

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

package screensaver;

import Java.awt.*;

import java.awt.image.BufferedImage;

import java.io.*;

import java.util.*;

import com.sun.image.codec.jpeg.*;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import java.awt.image.MemoryImageSource;

import java.io.FileInputStream;

import java.io.FileOutputStream;

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

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

public class ScreenPicSaver

{

MediaTracker tracker = new MediaTracker(new Component()

{});

public ScreenPicSaver()

{}

public Image loadbitmap(String sdir, String sfile) //读取8位或24位的位图文件

{

Image image;

System.out.println("loading:" + sdir + sfile);

try

{

FileInputStream fs = new FileInputStream(sdir + sfile);

int bflen = 14; // 14 字节 BITMAPFILEHEADER

byte bf[] = new byte[bflen];

fs.read(bf, 0, bflen);

int bilen = 40; // 40 字节 BITMAPINFOHEADER

byte bi[] = new byte[bilen];

fs.read(bi, 0, bilen);

// 解释数据。

int nsize = ( ( (int) bf[5] & 0xff) << 24)

( ( (int) bf[4] & 0xff) << 16)

( ( (int) bf[3] & 0xff) << 8)

(int) bf[2] & 0xff;

System.out.println("File type is :" + (char) bf[0] + (char) bf[1]);

System.out.println("Size of file is :" + nsize);

int nbisize = ( ( (int) bi[3] & 0xff) << 24)

( ( (int) bi[2] & 0xff) << 16)

( ( (int) bi[1] & 0xff) << 8)

(int) bi[0] & 0xff;

System.out.println("Size of bitmapinfoheader is :" + nbisize);

int nwidth = ( ( (int) bi[7] & 0xff) << 24)

( ( (int) bi[6] & 0xff) << 16)

( ( (int) bi[5] & 0xff) << 8)

(int) bi[4] & 0xff;

System.out.println("Width is :" + nwidth);

int nheight = ( ( (int) bi[11] & 0xff) << 24)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航