• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像のbyte[]データの読み込みついて)

画像のbyte[]データの読み込みについて

このQ&Aのポイント
  • Javaでのbyte[]の読み込み方法とは?
  • 外部APIを使用して画像データを取得する方法
  • 画像データの取得時にnullではなく代入すべき値は?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

class Q5281126A{ public static void main(String[] args) throws java.io.IOException{ java.awt.image.BufferedImage buf = javax.imageio.ImageIO.read(new java.io.File("./hoge.png")); java.io.ByteArrayOutputStream os = new java.io.ByteArrayOutputStream(); /* 第二引数に指定できる値はinformal namesらしいけど,何が出来るのかは知らない。bmpにするかはよく考える事。 */ javax.imageio.ImageIO.write(buf, "bmp", os); byte[] ba = os.toByteArray(); for(int i = 0;i < ba.length;i++){ System.out.println(ba[i]); } } }

marugori
質問者

お礼

ズバリ解決できました。 bmpになる事もズバリ正解でした。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaAPIのパラメータについて

    外部ライブラリのAPIを使って開発をしています。 環境はJavaでRMIで構築しています。 メソッドのパラメータの型について質問です。 画像を指定するメソッドだと思われるんですがbyte メッソド名 public void saveImageData(java.lang.String[] imageName) [質問] 例えば"Picture.jpg"という画像を指定をしたい時、 String[] imageName="Picture.jpg" と、指定すればエラーがでます。 nullしか代入できません。 String[]型にどのように値を入れたらいいのか教えて下さい。 外国のドキュメントで内容がかなり荒く、手探りで開発していいるので わかりにくい質問かと思いますがどうぞ宜しくお願いします。

    • ベストアンサー
    • Java
  • 大きな画像ByteデータをUDP転送したい

    VB.net2005でサーバーアプリとクライアントアプリを作って 全クライアントに一定間隔で画像を送信しようと思ってます。 クライアント側は全部取れなくてもいいので、UDPを使ってみたのですが、 送る画像をbmp.GetPixel()で取得してByte型の配列に詰めて 縦160*横120*3(RGB)分で転送する分にはOKだったのですが、 縦320*横240*3(RGB)分はNGでした。 (65535バイト以上送信するとエラーになる…UDPのデフォルトの バッファ最大値?) それでMemoryStreamとDeflateStreamと使って圧縮してみたものの 230401Byte → 222169Byte程度にしかなりませんでした。 jpgのByteデータにして送れば小さくなるのかと思ったのですが 良いやり方がわかりませんでした。 他の方法でもいいのですが、Byteデータを小さくする手段って ありますでしょうか?

  • byte配列をImageに変換する

    現在Javaでネットワーク越しに画像データを送るプログラムを書いているのですが、byte配列に変換した画像データを、元の画像データに戻せなくて困っています。 もう少しプログラムよりにかくと、BufferdImageをbyte[]には変換できますが、逆ができません。 何かよい方法はないのでしょうか?お返事お待ちしております。

    • ベストアンサー
    • Java
  • Oracle BLOB→Byte→.tif の変換

    こんばんわ。 タイトル通り、OracleのBLOB型の画像データをjavaのByte型に変換し、それをtiffファイルに変換したいのですが、Javaを始めたばかりで調べてもわかりませんでした。みなさんのお力をお借りしたいのですが・・・。 とりあえず、以下のソースでBLOB型のデータを取得し、byte型に変換まではできたのですが、これからこのバイトデータを.tifファイルへと変換するのがどうしてもわかりません。 ご回答お願いいたします。 ---------------------------------------------------------------- public class Image{ private byte[] imgData; public Blobconvert() { } public Blobconvert(byte[] image) { this.imgData = imgData; } public Blobconvert(InputStream imgData) throws IOException { byte[] buf = new byte[4096]; ByteArrayOutputStream bos = new ByteArrayOutputStream); while (true) {    int len = imgData.read(buf); if (len == -1) break; bos.write(buf, 0, len); } this.imgData = bos.toByteArray(); bos.close(); } public Blobconvert(Blob imgData) throws SQLException, IOException { this(imgData.getBinaryStream()); } } ---------------------------------------------------------------- Blob blbImage = rs.getBlob("SendFile");//SQL文の結果 Blobconvert listModel = null;          if (blbImage != null) listModel = new Blobconvert(blbImage); else listModel = new Blobconvert(); ----------------------------------------------------------------

  • BufferedImageをbyte[]に変換ってできますか?

    画像データを保持しているBufferedImageオブジェクト から、その内容をbyte[]で取得する方法はあるので しょうか? また、Image⇒byte[]も可能でしょうか?

  • imageからbyteの変換方法

    画像ファイル(jpgやbmp)からByte配列に格納する事は可能なのですが image型をbyte型に格納する方法が解りません。 ファイルのときはFileStreamとBinaryReaderを使用して BinaryReader.ReadBytesで行っていたのですが 同じような間隔で変換する事は可能なのでしょうか? ご教授お願いいたします。 プログラムはVB 2005を使用しております。

  • 画像ファイル jar

    お世話になります。 javaクラス内で、画像ファイルを読み込んでいます。  File f = new File( "/usr/local/image/test.jpg" ); javaクラス郡をアーカイブし、jarファイルを作成するとき、 test.jpgの画像ファイルも含み、  File f = new File( "test.jpg" ); というように、実行パスに影響されずに画像ファイルを読み込みたいと考えています。 こういった事はできますでしょうか?どういう手順で行えばいいのでしょうか? IDEはEclipse3.2.0を使用しております。

    • ベストアンサー
    • Java
  • Servletで画像を表示させたい時。

    例えばdocBaseがtestで、test直下にlogoフォルダがあって、その中に foobar.jpgと言う画像ファイルがあった場合、次のソースコードで出るはずなのですが、 /* イメージ画像の表示 */ package srd; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class dispLogo extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("image/jpeg"); BufferedInputStream bis = new BufferedInputStream(new FileInputStream("\\usr\\local\\test\\logo\\foobar.jpg")); ServletOutputStream out = res.getOutputStream(); int n; byte[] buf = new byte[512]; while ((n = bis.read(buf)) != -1) { out.write(buf, 0, n); } bis.close(); } } どうしても、画像のあるパスが分からないというエラーメッセージがでてしまいます。 画像はtmpフォルダに入れるべきなのでしょうか。それでも上手く表示されません。 どなたか分かる方がいましたら、教えてください。

  • JPEG画像のみを印刷したいのですが・・・

    度々質問します。 ブラウザに表示させたイメージ画像(JPEG)を印刷した所、印刷できま せんでした。 ちょうど他の方も印刷が出来ないと言うことで、ご質問されていまして、 参考になるURLにジャンプして色々見たのですが、正直よくわかりません。 本にもちょうど載っていたのですが、的外れな事が書かれているため、 参考にもなりません。 以下のソースは最初にA1.jpgを表示させ、その後「画像を変更」ボタンを 押すとB2.jpgに画像が変更されるものです。 やりたいのは、ボタンをもう一つ(印刷ボタン)追加して、そのボタンが 押された時に画像が印刷されるようにしたいんです。 基本的に画像のみを印刷したいと言う単純明快な形にしたいんです。 それで出来たらバカにでもわかるくらい簡単に書いていただけると助かります。 お手数ですがよろしくお願いします。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.io.*; import java.lang.*; public class Sample extends Applet { Button Henko; Image image; Color bgcolor; Font font; public void init() { setLayout(null); bgcolor = new Color(240,248,255); setBackground(bgcolor); setForeground(Color.black); font = new Font("Serif",Font.PLAIN,18); image = getImage(getDocumentBase(),"A1.jpg"); Henko = new Button("画像を変更"); Henko.setFont(font); Henko.setBounds(20,100,140,30); add(Henko); Henko.addActionListener(new Gazohenko()); } public void paint(Graphics g){ g.drawImage(image,150,150,this); } public class Gazohenko implements ActionListener{ public void actionPerformed(ActionEvent e){ image = getImage(getDocumentBase(), "B2.jpg"); repaint(); } } }

    • ベストアンサー
    • Java
  • int配列をbyte配列に変換

    MIDPアプリを作成している初心者です。 Image データを一旦端末のレコードストアに保存しておく為、 getRGB()で取得したint配列を、byte配列に変換しなくてはいけません。 ↓のように レコードストアに書き込むメソッドを書いてみました。 public void writeRecordStore( String name, Image image ) {     int width = image.getWidth();     int height = image.getHeight();     int[] pxData = new int[ width*height ];     byte[] byteData;     RecordStore rs = null;     try {         //画像をバイトデータに変換         image.getRGB( pxData, 0, width, 0, 0, width, height );         //レコードストアを開く         rs = RecordStore.openRecordStore( name, true );         //バイト配列に変換 ← ここがわからない                  //レコードの追加         rs.addRecord( byteData, 0, byteData.length );              } catch( Exception e ) {     } } int配列をbyte配列に変換する方法わかる方 ご教授の程お願いします。 また、まだコーディングに自信が無いので、文法のミスもご指摘頂けたらありがたいです。

    • ベストアンサー
    • Java