画像フォーマット変換:JPEGからPNG

このQ&Aのポイント
  • JavaのWebアプリでExcelファイルに貼り付けるために、JPEG形式の画像をPNG形式に変換する方法がわかりません。
  • JExcelを使ってExcelワークブックを生成する際、貼り付け可能な画像はPNG形式だけであり、JPEG形式の画像を使うためには変換が必要です。
  • 現在はJPEG形式の画像をJVMに取り込んでPNG形式に変換することはできていますが、JVM内で直接JPEGからPNGに変換する方法が分かりません。質問文中にヒントや情報があれば教えてください。
回答を見る
  • ベストアンサー

画像フォーマット変換 JPEG -> PNG

現在、JavaのWebアプリを作成しています。 帳票出力にExcelファイルのダウンロードがあります。そのExcelファイルには、画面からアップロードされた画像(JPEG)を貼り付けなければなりません。Excelワークブック生成には JExcel を使うつもりです。しかし、JExcel が貼り付け可能な画像が PNG形式だけなのです。 そこで、 JPEG形式のバイト列(アップロードされた画像データ) ↓ PNG形式のバイト列( JExcel のExcel生成中に使用するデータ) という処理ができなく困っています。 JPEG形式の画像ファイルを JVM に取り込み PNG形式の画像ファイルを吐き出すという処理なら出来ているのですが、 JVM 内だけで JPEG -> PNG ができないのです。 ヒントになることでもよいので、何か情報をいただければ幸いです。

  • Java
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。 >PNG形式の画像ファイルを吐き出す >という処理なら出来ているのですが、  ここまでできているのなら、ただ単に出力先を FileOutputStream から ByteArrayOutputStream に変えてやれば、いいだけなんじゃないでしょうか。  そのあと、ByteArrayOutputStream の toByteArray()メソッドを呼べば、バイト配列が得られますよ。

courks
質問者

お礼

ありがとうございました! できました。!!! BufferedImage readImage = ImageIO.read(new File("test.jpg")); boolean result = ImageIO.write(readImage, "png",     new File("test.png")); というコードを書いていました。それを byte[] jpegData = null; byte[] pngData = null; ByteArrayInputStream byteArrayInputStream     = new ByteArrayInputStream(jpegData); readImage = ImageIO.read(byteArrayInputStream); ByteArrayOutputStream byteArrayOutputStream     = new ByteArrayOutputStream(); result = ImageIO.write(readImage, "png", byteArrayOutputStream); pngData = byteArrayOutputStream.toByteArray(); byteArrayOutputStream.close(); と書き換えることで実現できました。 できれば上のコードで何か指摘していただければ更に助かるのですが。

関連するQ&A

  • PNGとJPEGの違い

    画像処理などをしていますが 画像をネット上にアップする際に GIFやJPEGやPNGなどの各種拡張子がありますが その中でもPNGとJPEGの違いとは何なのでしょうか? GIFとJPEGでは大きく変化がわかるのですが JPEGとPNGの違いが、あんまり分からなくて 写真などの画像を処理する際には どちらの方が適している(綺麗に表示される)のでしょうか? 宜しくお願い致します。

  • JPEG形式をPNG形式に変えれますか?

    JPEG形式をPNG形式に変えれますか??JPEG形式とPNG形式って何がちがうんですか?JPEG形式の画像をツーカー(TS31)に送りたいんですけど無理ですか?

  • pngからjpegに画像形式を変換

    こんにちは pngからjpegに画像形式を変換するアプリケーション(C++で)を作成しようとしています。そしてウェブで検索してみると、http://www.personal-media.co.jp/tron/developer/doc/brightv.r4/library/appl/libimg.htmlというサイトが見つかりました。 BTRONというOSの中で使用するために作られたライブラリの解説のようなのですが、このライブラリの入手方法がよくわかりませんでした。わかる方教えていただけますでしょうか。 また、他にも手軽にpng→jpegへ変換するプログラムが作成できる方法をご存じの方教えてください。 よろしくお願いします。

  • [JPEG vs PNG]

    [JPEG vs PNG] 某商業高校の学生です。 先日、ファイルの種類について習いました。 先生曰く、「JPEGは圧縮率が高くその代償に、圧縮すると画質が落ちる。おまけに背景を透明に出来ない(透明では無く白になる)。」そして、「PNGはJPEGと比べて(同じ画像の場合)サイズは大きいが圧縮による劣化が無く、色もたくさん使えるのでより高画質である」と言ってました。 僕は、ほぼ全ての画像をJPEGで保存しています。画像は、壁紙として使ってます。PNGの方が高画質ならJPEGからPNGに変換すべきでしょうか? また、リサイズにゆる劣化もPNGなら防げますか?

  • .pngの画像ファイルについての質問

    自分は今まで、画像ファイルを(画質は落ちるが)容量を小さく保存するのは.jpeg方式だと思ってました。それ以外は、bmpとgifしか知りませんでした。最近.pngの拡張子の画像を見かけるようになったのですが、これは新しい画像の保存形式でしょうか?.pngは.jpegよりも高画質の小容量で保存できますか?だとすると、どうやって.jpegや.bmpを.pngに変えられるのでしょうか?(ソフト使用ですか?)

  • IE、PNGでなくJPEGで画像保存したい

    OSはVista、ブラウザはIEを使ってます。 先日のセキュリティ更新以降、ネットの画像を保存しようとするとPNGで保存されるのが非常に多くなりました。 更新前は殆どがJPEGでPNGはごく稀でした。 試しに、IEでPNG保存になったサイトを別のブラウザで開き、画像を保存しようとしたらJPEG保存でした。 IEの画像保存形式を変更する方法や設定はありませんか?

  • Flashに使用する画像って?jpeg?png?

    写真を使用しているFlashサイトって、ありますよね。 そういうサイトで使用している画像形式は、pngなのでしょうか? jpegはいろいろな種類がありますし、画質が荒いかもしれませんし、 gifは今著作権問題が浮上してきていますし、 そうなるとpng? ただ、pngだと重たくありませんか? webコンテンツではなく、exeで動かすならpngもありかと思うのですが どうでしょう? 是非、どなたかよろしくお願いします。

  • ddsという画像ファイルの形式をメジャーな形式(JPEGやPNG)に変

    ddsという画像ファイルの形式をメジャーな形式(JPEGやPNG)に変換したいんですが、 そういうことができるソフトってありますか? 知っている方どうか教えてください。

  • 軽いはずなのにJPEGにすると重くなる画像@photoshop

    こんにちわ。 携帯用の壁紙をPHOTOSHOPでいつも作ってます。 ところで、アイコンソフトで作成したPNGファイル を、photoshopで読み込み、JPEGで書き出すと 「画像以外のデータは保存しない」にしてるに関わらず、 6KB内にしようと思うとかなりの低画質にしなくてはなりません。(因みに私の携帯は6KB内、JPEGしか対応してません) けれど、どう見ても2色しか使ってない単純な模様の画像(ドット柄のようなもの)なので重くなるわけがないんです。PNGファイルじたいは800バイトくらいしかありません。なのにJPEGにすと普通画質でも15KBくらい超えてしまいます。 因みにJPEGから取り込んだ画像の場合だと、もっと複雑な写真(風景など)にもかかわらずそんなに重くなりません。高画質でも6KB内ですみます。 PNGからとりこんでJPEGファイルにするからいけないのでしょうか?一回GIFにしてからコピペしたり、photoshopファイルも統合したり、しなかったり・・・いろんな方法をやってみましたがやっぱり軽くなりません。 何が原因なのでしょうか?

  • PNGとJPEGについて

    お世話になります。 初歩的な質問です。 久し振りにWindows7でペイントを使用したら画像保存時のデフォルトがPNGである事に気が付きました。 今までは、JPEGが主流と思っていました。 画面のハードコピーをメールやエクセルシートに貼る使い方しかしyていませんが、 現在は、PNGが主流なのでしょうか。

専門家に質問してみよう