知识大全 printscreen读取位图转为jpeg格式输出

Posted

篇首语:智者不为愚者谋,勇者不为怯者死。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 printscreen读取位图转为jpeg格式输出相关的知识,希望对你有一定的参考价值。

  package screensaver;    import java awt *;  import java awt image BufferedImage;  import java io *;  import java util *;  import dec 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 dec jpeg JPEGCodec;  import dec jpeg JPEGImageEncoder;    public class ScreenPicSaver     MediaTracker tracker = new MediaTracker(new Component()   );     public ScreenPicSaver()        public Image loadbitmap(String sdir String sfile) //读取 位或 位的位图文件       Image image;    System out println( loading: + sdir + sfile);    try         FileInputStream fs = new FileInputStream(sdir + sfile);     int bflen = ; // 字节 BITMAPFILEHEADER     byte bf[] = new byte[bflen];     fs read(bf bflen);     int bilen = ; // 字节 BITMAPINFOHEADER     byte bi[] = new byte[bilen];     fs read(bi bilen);       // 解释数据      int nsize = ( ( (int) bf[ ] & xff) < <  )       | ( ( (int) bf[ ] & xff) < <  )       | ( ( (int) bf[ ] & xff) < <  )       | (int) bf[ ] & xff;     System out println( File type is : + (char) bf[ ] + (char) bf[ ]);     System out println( Size of file is : + nsize);       int nbisize = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( Size of bitmapinfoheader is : + nbisize);       int nwidth = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( Width is : + nwidth);       int nheight = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( Height is : + nheight);       int nplanes = ( ( (int) bi[ ] & xff) < <  ) | (int) bi[ ] & xff;     System out println( Planes is : + nplanes);       int nbitcount = ( ( (int) bi[ ] & xff) < <  ) | (int) bi[ ] & xff;     System out println( BitCount is : + nbitcount);       // 查找表明压缩的非零值     int npression = ( ( (int) bi[ ]) < <  )       | ( ( (int) bi[ ]) < <  )       | ( ( (int) bi[ ]) < <  )       | (int) bi[ ];     System out println( Compression is : + npression);       int nsizeimage = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( SizeImage is : + nsizeimage);       int nxpm = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( X Pixels per meter is : + nxpm);       int nypm = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( Y Pixels per meter is : + nypm);       int nclrused = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( Colors used are : + nclrused);       int nclrimp = ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | ( ( (int) bi[ ] & xff) < <  )       | (int) bi[ ] & xff;     System out println( Colors important are : + nclrimp);       if (nbitcount == )           // 位格式不包含调色板数据 但扫描行被补足到      // 个字节       int npad = (nsizeimage / nheight) nwidth * ;      int ndata[] = new int[nheight * nwidth];      byte brgb[] = new byte[ (nwidth + npad) * * nheight];      fs read(brgb (nwidth + npad) * * nheight);      int nindex = ;      for (int j = ; j < nheight; j++)             for (int i = ; i < nwidth; i++)               ndata[nwidth * (nheight j ) + i] =          ( & xff) < <            | ( ( (int) brgb[nindex + ] & xff) < <  )          | ( ( (int) brgb[nindex + ] & xff) < <  )          | (int) brgb[nindex] & xff;        /**  System out println( Encoded Color at (           +i + + j + )is: + nrgb + (R G B)= (             + ( (int) (brgb[ ]) & xff) +             + ( (int) brgb[ ] & xff) +             + ( (int) brgb[ ] & xff) + ) );         */        nindex += ;              nindex += npad;              image = Toolkit getDefaultToolkit() createImage        (new MemoryImageSource(nwidth nheight                     ndata nwidth));          else if (nbitcount == )           // 必须确定颜色数 如果 clrsused 参数大于       // 则颜色数由它决定 如果它等于 则根据      // bitsperpixel 计算颜色数       int nNumColors = ;      if (nclrused > )             nNumColors = nclrused;            else             nNumColors = ( & xff) < < nbitcount;            System out println( The number of Colors is + nNumColors);        // 某些位图不计算 sizeimage 域 请找出      // 这些情况并对它们进行修正       if (nsizeimage == )             nsizeimage = ( ( ( (nwidth * nbitcount) + ) & ~ ) >> );       nsizeimage *= nheight;       System out println( nsizeimage (backup) is + nsizeimage);              // 读取调色板颜色       int npalette[] = new int[nNumColors];      byte bpalette[] = new byte[nNumColors * ];      fs read(bpalette nNumColors * );      int nindex = ;      for (int n = ; n < nNumColors; n++)             npalette[n] = ( & xff) < <           | ( ( (int) bpalette[nindex + ] & xff) < <  )         | ( ( (int) bpalette[nindex + ] & xff) < <  )         | (int) bpalette[nindex ] & xff;       /**System out println ( Palette Color +n             + is: + npalette[n] + (res R G B)= (          + ( (int) (bpalette[nindex + ]) & xff) +          + ( (int) (bpalette[nindex + ]) & xff) +          + ( (int) bpal cha138/Article/program/Java/JSP/201311/19747

相关参考

知识大全 在Java应用程序读取8位和24位Windows位图

在Java应用程序读取8位和24位Windows位图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 在VC下显示JPEG、GIF格式图像的一种简便方法

在VC下显示JPEG、GIF格式图像的一种简便方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!l

知识大全 JS中将字符串转为XML并读取对象值实例

JS中将字符串转为XML并读取对象值实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在jav

知识大全 用Ajax读取XML格式的数

用Ajax读取XML格式的数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用Ajax读取XML

知识大全 DataTable转为JSON数据格式代码

DataTable转为JSON数据格式代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  做项目

如何优化图像质量

数码单反相机的图像格式可以选择JPEG也可以选择RAW格式,RAW格式对于后期制作是非常有利的。另外,RAW格式的画面不会经过相机的自动调整,其质量会更优质一些。当然,摄影者可以通过设置饱和度、反差、

知识大全 怎样将cdr格式中的图片保存成png格式

怎样将cdr格式中的图片保存成png格式1.选择导出CorelDraw这款软件和别的软件略有不同,这款软件不能直接保存jpg、png等位图模式。如果我们需要保存这些位图模式的话,我们需要用导出来实现;

知识大全 spring中读取xml配置文件、获取bean

  读取xml文件  /**  *利用XmlBeanFactory(Resourceresource)  *这里Resource必须是xml格式  *Resource包括AbstractResourc

知识大全 请列举图像类型、声音类型、视频类型的文件格式各3种。并简单描述其特征。

请列举图像类型、声音类型、视频类型的文件格式各3种。并简单描述其特征。视频aviwmv流媒体asfrmramrmvbTxt,Text,Scp,Log,Wtx之类的、声音wav、图像JPG/JPEG、视

知识大全 js时间戳怎么转成日期格式

  问题是这样的  /Date()/这样的格式怎么转成时间格式  这是从C#的Datatime格式通过Json传到Js里面的  下面是我们的提供的方法  js需要把时间戳转为为普通格式一般的情况下可能