sunfruit[請訪問http://www.fruitres.cn]

          --我相信JAVA能走得更遠 QQ:316228067

          導航

          <2006年10月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          統計

          公告

          個人寫的作品會盡量附上代碼,大家使用發現問題就指出,交流第一嘛  QQ:316228067

          常用鏈接

          留言簿(13)

          隨筆分類(121)

          隨筆檔案(105)

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          [原創]利用圖片的像素RGB值還原圖像的JAVA應用

              --sunfruit
              JAVA編寫的使用像素RGB值還原圖像的方法,代碼如下
              public class ImageData {

              private int[][] idata=null;

              public ImageData() {
                  readImageData();
                  writeImageData();
              }

              private int[][] readImageData()
              {
                  try {
                      //imagedata的鍵值就是一個存儲了圖像像素RGB值得文本文件
                      RandomAccessFile randomAccessFile = new RandomAccessFile(new File(GetResource.getXMLValue("imagedata")),"r");
                      long filesize=randomAccessFile.length();
                      long filepointer=0;
                      DynArrayInt dynArrayInt=null;
                      ArrayList arrayList=new ArrayList();
                      int n1=0;
                      while(filesize>filepointer)
                      {
                          filepointer=randomAccessFile.getFilePointer();

                          String str1=randomAccessFile.readLine();
                          if(str1!=null)
                          {
                              String[] str2=str1.split(" ");
                              String[] str3=str2[1].split(",");
                              dynArrayInt=new DynArrayInt();
                              for(int i=0;i<str3.length;i++)
                              {
                                  if(!str3[i].equals(""))
                                  {
                                      int pix = Integer.parseInt(str3[i], 16);
                                      dynArrayInt.addInt(pix);
                                  }
                              }
                              if(n1==0)
                                  n1=dynArrayInt.getSize();
                              arrayList.add(dynArrayInt);
                          }
                      }

                      idata=new int[arrayList.size()][dynArrayInt.getSize()];
                      for(int i=0;i<idata.length;i++)
                      {
                           DynArrayInt dynArrayInt1=(DynArrayInt)arrayList.get(i);
                          for(int j=0;j<idata[i].length;j++)
                          {
                              idata[i][j]=dynArrayInt1.getInt(j);
                          }
                      }

                  } catch (Exception ex) {
                      ex.printStackTrace();
                  }
                  return idata;
              }

              private void writeImageData()
              {
                  BufferedImage bufferedImage=new BufferedImage(idata[0].length,idata.length,BufferedImage.TYPE_INT_RGB);
                  for(int i=0;i<idata.length;i++)
                  {

                      for(int j=0;j<idata[i].length;j++)
                      {
                          bufferedImage.setRGB(j,i,idata[i][j]);
                      }
                  }
                  Random random=new Random(System.currentTimeMillis());
                  String ext="jpg";
                  String filepath = System.getProperty("java.io.tmpdir") + random.nextInt(99999) + "." + ext;
                  try {
                      ImageIO.write(bufferedImage, ext,  new File(filepath));
                      System.out.println("文件已經生成,路經為" + filepath);
                  }
                  catch (IOException ex) {
                      ex.printStackTrace();
                  }

              }

              public static void main(String[] args) {
                  ImageData imagedata = new ImageData();
              }
          }

          其中的“GetResource”,“DynArrayInt”為自定義類,GetResource得功能就是解析獲取properties文件的內容,DynArrayInt是一個整形動態數組,可以在以前的文章里獲得“DynArrayInt”的源代碼,所謂的圖像的像素值就是如下數據
          px1 44525b,44555d,475a61,47585d,44555a,46575c,44575d,43565c,42575e,43585f,445960,435962,435964,425861,425861,41585e,3f555e,3e545f,3d5261,3c5162,3d4f59,3d4f59,3f515b,40525c,40525c,40525c,40525c,3f515b,3f515b,3f4f5a,3f4f5c,40505d,3f515f,3f515f,3d5060,3c4f5f,3b505f,3a4e58,3e525e,3e525e,3d5060,415466,3f5264,405363,405460,41555f,42575d,42575e,43585f,445862,445862,445864,445864,445866,445866,415760,435962,445a63,455b66,455b66,445a67,455b68,485d6c,4c626f,4d636e,4e646f,4d636c,4b616a,51686e,536a70,566d73,5c7378,6f7c7a,7c8987,86908f,8d9796,8e9696,949a9a,969c9c,9ca2a2,a1a3a1,a8aaa8,aeb1ac,b2b5b0,b9bcb7,c5c8c2,cccfc9,ced1c9,d6d9d1,d5d8d3,d7dad5,dadbd5,dcddd7,dcdbd4,ddddd3,e0ddd4,e0ddd4,deddd6,deddd6,deddd6,dfded7,dfded7,e0dfd8,e0dfd8,e0dfd8,e0dfd8,e3dfd9,e3dfd9,e3dfd9,e3dfd9,e4e0da,e4e0da,e4e0da,e5e1db,e5e1db,e2e1da,e2e1da,e3e2db,e3e2db,e4e3dc,e4e3dc,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e6e5de,e6e5de,e6e5de,e6e5de,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e4e1d8,e5e2d9,e5e2d9,e4e1d8,e2dfd6,e3e0d7,e2dfd6,e1ded5,e1ded5,e2dfd6,e2dfd6,e2dfd6,e2dfd6,e1ded5,e1ded5,e1ded5,e1ded5,e1ded5,dedad4,dedad4,dcdbd4,dcdbd4,dbdcd4,dbdcd4,d9dcd4,d9dcd4,dedad4,dedad4,ddd9d3,ddd9d3,dbd7d1,dbd7d1,dcd8d2,dcd8d2,dbd7d1,d5d8d0,d5d8d0,d7d8d0,d7d8d0,d7d6cf,d9d5cf,d9d5cf,d9d5cf,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d5d4cd,d5d4cd,d5d7cc,d5d7cc,d5d7cc,d5d7cc,d4d6cb,d4d6cb,d5d7cc,d5d7cc,d5d7cc,d2d7d0,d2d7d0,d3d6d0,d3d6d0,d4d5cf,d4d5cf,d5d4cf,d5d4cf,d5d4cf,d5d4cf,d5d4cf,d5d4cf,d4d3ce,d4d3ce,d4d3ce,d4d3ce,d4d3ce,d0d3cb,d2d3cb,d3d2cb,d6d0cb,d6d0cb,d4d3cc,d3d4cc,d2d5cd,d3d2ce,d3d2ce,d3d2ce,d3d2ce,d3d2ce,d3d2ce,d3d2ce,d3d2ce,d3d2ce,d0d3cb,d0d3cb,d2d3cb,d2d3cb,d3d2cb,d3d2cb,d5d1cb,d5d1cb,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d1d0c9,d1d0c9,d2d1ca,d2d1ca,d3d2cb,d3d2cb,d3d2cb,d3d2cb
          px0 44525b,44575e,465b62,485a5a,455757,46585a,44575b,42555b,41565d,435761,445862,445a63,435966,435964,42595f,42595e,40575c,3f5560,3d5263,3c5066,3a4c58,3b4d59,3d4f5b,3e505a,40525c,40525c,40535a,3f5259,3f5259,3f5057,3f5057,405158,3f5259,3f5259,3d515b,3c505a,3b515c,3a4e5a,3e5260,3e5260,3d5060,415468,3f5266,3f5262,405462,405460,42575d,42575e,43585f,435761,41555f,425662,445864,465a68,465a68,415760,425861,445a63,445a65,445a65,465c69,475d6a,475c6b,44596a,485d6e,4c6373,4d6474,4a616f,4b6472,4b6472,496270,4c6573,5f6c6e,677476,6f7c7e,798587,818a8d,899295,8f969a,91989c,949895,9a9e9b,9ea39d,a1a6a0,a9aea8,aeb3ac,babfb8,c0c5bc,ccd1c8,cfd2cd,d2d5d0,d5d6d0,d7d8d2,dcdbd4,ddddd3,e0ddd4,e0ddd4,deddd6,deddd6,deddd6,dfded7,dfded7,e0dfd8,e0dfd8,e0dfd8,e0dfd8,e3dfd9,e3dfd9,e3dfd9,e3dfd9,e4e0da,e4e0da,e4e0da,e5e1db,e5e1db,e2e1da,e2e1da,e3e2db,e3e2db,e4e3dc,e4e3dc,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e6e5de,e6e5de,e6e5de,e6e5de,e5e4dd,e5e4dd,e5e4dd,e5e4dd,e4e1d8,e4e1d8,e4e1d8,e3e0d7,e2dfd6,e2dfd6,e2dfd6,e1ded5,e1ded5,e2dfd6,e2dfd6,e2dfd6,e2dfd6,e1ded5,e1ded5,e1ded5,e1ded5,e1ded5,ddd9d3,ddd9d3,dbdad3,dbdad3,dadbd3,dadbd3,d8dbd3,d8dbd3,dedad4,dedad4,ddd9d3,ddd9d3,dad6d0,dbd7d1,dcd8d2,dcd8d2,dbd7d1,d5d8d0,d5d8d0,d5d8d0,d7d8d0,d6d7cf,d7d6cf,d7d6cf,d9d5cf,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d6d5ce,d5d4cd,d5d4cd,d6d8cd,d6d8cd,d6d8cd,d6d8cd,d4d6cb,d4d6cb,d5d7cc,d5d7cc,d5d7cc,d3d8d1,d3d8d1,d4d7d1,d4d7d1,d4d5cf,d4d5cf,d5d4cf,d5d4cf,d5d4cf,d5d4cf,d5d4cf,d5d4cf,d4d3ce,d4d3ce,d4d3ce,d4d3ce,d4d3ce,d0d3cb,d2d3cb,d3d2cb,d6d0cb,d7d1cc,d4d3cc,d4d5cd,d2d5cd,d4d2d1,d4d2d1,d4d2d1,d4d2d1,d4d2d1,d3d1d0,d3d1d0,d3d1d0,d3d1d0,d0d3cb,d0d3cb,d2d3cb,d2d3cb,d3d2cb,d3d2cb,d5d1cb,d5d1cb,d3d2cd,d3d2cd,d3d2cd,d3d2cd,d3d2cd,d2d1cc,d2d1cc,d2d1cc,d2d1cc,d1d0c9,d1d0c9,d2d1ca,d2d1ca,d4d3cc,d4d3cc,d4d3cc,d4d3cc
          以上數據表示圖像有兩行像素,每一行有260個像素組成,每個像素的RGB值就是44525b

          posted on 2006-10-23 21:28 sunfruit 閱讀(1934) 評論(2)  編輯  收藏 所屬分類: JAVA SE & EE

          評論

          # re: [原創]利用圖片的像素RGB值還原圖像的JAVA應用 2006-10-23 23:35 cs(FQF)

          非常感謝SF的幫忙,解決這個問題。其實這個問題起源于解決自拍截圖的圖片保存。現在很多網站都興起自拍視頻方面的,我看了很多都是php完成的,這次特此采用java實現。  回復  更多評論   

          # re: [原創]利用圖片的像素RGB值還原圖像的JAVA應用 2014-11-15 12:15 yl

          您好 我想參考下你的代碼 但其中的“GetResource”,“DynArrayInt”我找了您的博客,但一直沒找到,請博主告知下具體位置,非常感謝~  回復  更多評論   

          主站蜘蛛池模板: 乌鲁木齐县| 台北县| 正蓝旗| 洛隆县| 天柱县| 临海市| 垦利县| 宿迁市| 永寿县| 凉城县| 梓潼县| 措勤县| 平山县| 太仆寺旗| 正阳县| 柳州市| 高陵县| 陕西省| 民乐县| 昌吉市| 石嘴山市| 鄂托克前旗| 抚松县| 镇赉县| 澄江县| 阳江市| 高邮市| 崇礼县| 高陵县| 定日县| 远安县| 汾西县| 慈利县| 故城县| 偃师市| 方山县| 北海市| 青龙| 嘉善县| 松溪县| 云南省|