Javaコードにbyte[]
の形式の画像があります。私はその配列から以下の情報を抽出します。私はできるだけ早くそれをやり遂げることができます。バイト配列から画像の幅、高さ、色、タイプを抽出
- 幅
- 身長
- 色(黒&白、色や透明?色の場合、主な色は何ですか?)
- タイプ(画像等PNG、GIF、JPEG、です)
Javaコードにbyte[]
の形式の画像があります。私はその配列から以下の情報を抽出します。私はできるだけ早くそれをやり遂げることができます。バイト配列から画像の幅、高さ、色、タイプを抽出
ImageIOを使用してバッファリングされたイメージとして読み取り、必要なものを取得します。 java doc(http://docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html)を参照してください。私は別のファイルを持っている出力ここ
byte[] picture = new byte[30];
ImageInputStream iis = ImageIO.createImageInputStream(new ByteArrayInputStream(picture));
Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
while (readers.hasNext()) {
ImageReader read = readers.next();
System.out.println("format name = " + read.getFormatName());
}
されています:
format name = png
format name = JPEG
format name = gif
それを
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
public class Test {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// assuming that picture is your byte array
byte[] picture = new byte[30];
InputStream in = new ByteArrayInputStream(picture);
BufferedImage buf = ImageIO.read(in);
ColorModel model = buf.getColorModel();
int height = buf.getHeight();
}
}
私にコードスニペットを教えてください。私は本当にそれを感謝します。 –
特に色の部分です。 –
編集していただきありがとうございます。色の情報はどうですか? 'BufferedImage'でも可能ですか?ありがとう。 –
は、バイト配列から画像の種類を取得するには、あなたのような何かを行うことができます次のものからインスピレーションを得ました:
Convert Byte Array to image in Java - without knowing the type
fr me ... thnks :) –
Cool。 ..おめでとう! –
バイト配列でビット単位の操作を使用してその種の情報を抽出することは大きな課題です。私はそれのためにいくつかのライブラリを使用したいと思います。 – Simon
何らかの画像を作成する(おそらく 'ImageIO'を使用して)画像のプロパティを抽出します – MadProgrammer
@imimライブラリを使用しても問題はありません。 –