首页 > 学院 > 开发设计 > 正文

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

2019-11-18 11:24:34
字体:
来源:转载
供稿:网友

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)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表