- - PR -
bmpからJPEGへの変換
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-09-16 07:38
bgr233という青2ビット緑3ビット赤3ビットの形式のバイト列をJPEGに変換したいのですが
うまくいきません 今はカラーモデルを作ってからイメージを作成して配列ごとデータを設定しています そのあと ImageIO.write(biImg, "jpeg", ro); で書き込んでいます これを実行するとImageIO.writeのところでArrayIndexOutOfBoundsExceptionが出てしまい困っています 原因がなんなのか分かる方がいらっしゃったらご教授願います こんな感じのソースです sisが入力ストリームでroが出力ストリームです DirectColorModel bgr233 = new DirectColorModel(8,0x7,0x38,0xc); WritableRaster raster = bgr233.createCompatibleWritableRaster(width, height); BufferedImage biImg=new BufferedImage(bgr233, raster, false, new Hashtable()); byte[] datas = new byte[height*width]; for(int pos=0;pos<width*height;pos++){ int isis = sis.read(); if(isis==-1) return; datas[pos] = (byte)isis; } raster.setDataElements(0,0,width,height,datas); ImageIO.write(biImg, "jpeg", ro); |
|
投稿日時: 2004-09-16 08:51
解決しました
自己レスです 8ビットピクセルデータだとJPEG変換は出来ないようで 24ビット?にカラーの変換をかけたら出来たようです お騒がせしました BufferedImage biImg =new BufferedImage(bgr233, raster, false, new Hashtable()); BufferedImage trueImg =new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); ColorConvertOp cco = new ColorConvertOp(null); BufferedImage deImg = cco.filter(biImg, trueImg); ImageIO.write(deImg, "jpeg", ro); |
1
