成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個ImageBuffer轉bmp的代碼

開發(fā) 后端
本文提供了imagebuffer轉bmp 的代碼片段。

下面提供了imagebuffer 轉 bmp 的代碼片段:

try {
   BufferedImage bi = null;
   if (isURL == true) {
    bi = ImageIO.read(new URL(inFileName));
   }
   else {
    bi = ImageIO.read(new File(inFileName));
   }
  
   int[] rgbArray = new int[101 * 29];//我測試用的圖象文件象素值寬度是101寬,29長的
  
   bi.getRGB(0, 0, 101, 29, rgbArray, 0, 101);
   for (int i = 0; i < 101 * 29; i++) {//我做的只是雙色圖,所以這里查出每一個象素是1(黑)還是0(白)
    if ((rgbArray[i] & 0xffffff) == 0x000000)
     rgbArray[i] = 0;
    else
     rgbArray[i] = 1;
   }
   //以下是BMP文件格式的定義,更加具體的說明可以到找
   int[] identifier = { @#B@#, @#M@# };
   int[] fileSize = { 0x0E, 0x02, 0x00, 0x00 };
   int[] reserved = { 0x00, 0x00, 0x00, 0x00 };
   int[] bitmapDataOffset = { 0x3E, 0x00, 0x00, 0x00 };
   int[] bitmapHeaderSize = { 0x28, 0x00, 0x00, 0x00 };
   int[] width = { 0x65, 0x00, 0x00, 0x00 };
   int[] height = { 0x1D, 0x00, 0x00, 0x00 };
   int[] planes = { 0x01, 0x00 };
   int[] bitsPerPixel = { 0x01, 0x00 };
   int[] compression = { 0x00, 0x00, 0x00, 0x00 };
   int[] bitmapDataSize = { 0xD0, 0x01, 0x00, 0x00 };
   int[] hResolution = { 0x00, 0x00, 0x00, 0x00 };
   int[] vResolution = { 0x00, 0x00, 0x00, 0x00 };
   int[] colors = { 0x00, 0x00, 0x00, 0x00 };
   int[] importantColors = { 0x00, 0x00, 0x00, 0x00 };
   int[] palette = { 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00 };
   //記住bmp沒一個掃描行都要擴充到下一個4bytes的倍數(shù),如101就要變成128,擴充的byte補0即可
   int[] bitmapData = new int[(101 + 27) * 29 / 8];
   int n = 0;
   for (int i = 0; i < 29; i++) { //BMP格式是從最后一行開始scan的
    for (int j = 1; j <= 101; j++) {
     if (rgbArray[(28 - i) * 101 + j - 1] == 1) {
      bitmapData[n] = bitmapData[n] | (1 << (8 - j % 8) % 8);
     }
     if (j % 8 == 0) {
      n++;
     }
     if (j == 101) {
      n += 4;
     }
    }
   }
   RandomAccessFile o = new RandomAccessFile(outFileName, "rw");
   o.setLength(0);
   for (int i = 0; i < identifier.length; i++) {
    o.write(identifier[i]);
   }
   for (int i = 0; i < fileSize.length; i++) {
    o.write(fileSize[i]);
   }
   for (int i = 0; i < reserved.length; i++) {
    o.write(reserved[i]);
   }
   for (int i = 0; i < bitmapDataOffset.length; i++) {
    o.write(bitmapDataOffset[i]);
   }
   for (int i = 0; i < bitmapHeaderSize.length; i++) {
    o.write(bitmapHeaderSize[i]);
   }
   for (int i = 0; i < width.length; i++) {
    o.write(width[i]);
   }
   for (int i = 0; i < height.length; i++) {
    o.write(height[i]);
   }
   for (int i = 0; i < planes.length; i++) {
    o.write(planes[i]);
   }
   for (int i = 0; i < bitsPerPixel.length; i++) {
    o.write(bitsPerPixel[i]);
   }
   for (int i = 0; i < compression.length; i++) {
    o.write(compression[i]);
   }
   for (int i = 0; i < bitmapDataSize.length; i++) {
    o.write(bitmapDataSize[i]);
   }
   for (int i = 0; i < hResolution.length; i++) {
    o.write(hResolution[i]);
   }
   for (int i = 0; i < vResolution.length; i++) {
    o.write(vResolution[i]);
   }
   for (int i = 0; i < colors.length; i++) {
    o.write(colors[i]);
   }
   for (int i = 0; i < importantColors.length; i++) {
    o.write(importantColors[i]);
   }
   for (int i = 0; i < palette.length; i++) {
    o.write(palette[i]);
   }
   for (int i = 0; i < bitmapData.length; i++) {
    o.write(bitmapData[i]);
   }
   o.close();
  }
  catch (MalformedURLException e) {
   e.printStackTrace();
  }
  catch (IOException e) {
   e.printStackTrace();  
  }

 

 

【編輯推薦】

  1. JavaOne 2009第三天:微軟與Sun/Oracle攜手并進
  2. 開發(fā)高可移植性J2ME的軟件
  3. Java虛擬機(JVM)中的內存設置詳解]
  4. 20個開發(fā)人員非常有用的Java功能代碼
  5. JavaFX和Java之間的互操作性
責任編輯:王觀 來源: 百家編程
相關推薦

2009-06-11 10:59:19

netbeans提示

2011-07-19 09:46:00

Oracle數(shù)據(jù)庫遞歸查詢

2016-09-26 17:26:20

2024-05-15 10:07:11

Agents人工智能CSV

2022-10-14 17:48:55

D2C代碼vue

2024-05-16 12:03:54

Python代碼開發(fā)

2014-10-14 15:50:19

UIAndroid

2023-01-03 12:30:25

架構CPUGPU

2020-06-28 08:10:00

GoGOSSAFUNC圖編程語言

2018-06-23 08:02:31

程序員代碼故事

2022-04-28 09:05:41

網(wǎng)絡爬蟲Python

2021-08-23 11:35:37

代碼開發(fā)開源

2022-10-31 07:09:15

拷貝代碼項目

2011-07-20 13:40:00

SQLite數(shù)據(jù)庫查詢數(shù)據(jù)

2021-02-03 19:46:01

工具Snipaste軟件開發(fā)

2023-10-26 11:22:32

2009-06-22 13:50:00

java連接mysql

2022-07-14 16:18:32

massCode開源

2025-06-27 06:38:19

2013-02-22 18:37:50

容錯服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产午夜精品理论片a大结局 | 伊人色综合久久久天天蜜桃 | 超碰在线网站 | 亚洲日本三级 | 一区欧美 | 亚洲视频二区 | 99热精品国产 | 91资源在线观看 | 超碰在线播 | 欧美一级二级三级视频 | 久久久久国产 | 五月综合色啪 | 在线一区| 国产极品91 | 99热这里只有精品8 激情毛片 | 国产精品激情小视频 | 99久久精品国产一区二区三区 | 国产黄色大片 | 最新日韩av | 午夜激情在线 | 日韩视频在线一区 | 在线小视频 | 成人av一区二区亚洲精 | 在线观看欧美一区 | 婷婷综合久久 | 久久国产成人午夜av影院武则天 | av片免费观看 | 国产精品久久久久久久免费大片 | 精品欧美一区二区在线观看 | 久久视频精品 | 亚洲国产日韩一区 | 久久久久无码国产精品一区 | 啪啪毛片| 国产免费福利在线 | 91精品国产一区二区三区蜜臀 | 美女一级毛片 | 久草.com | 成人看片在线观看 | 国产精品视频网 | 最新中文字幕 | 毛片一级片 |