![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
OracleDBからBLOB型の画像データを取得しています。
本来必要のなかった処理なのですが、DBに入っている画像のデータがおかしいらしく、ピクセルとdpiの値を変更しなければなりません。
いろいろと調べてやってみようと思ったのですが、いきづまってしまいました(><)
みなさんの力をお貸しください。
内容は、
・一度DBからそのまま画像を抽出し、ファイルを作成
・作成したファイルをもう一度BufferedImageに取り込み、サイズ変更処理開始
となっています。
しかし、BufferedImageに取り込む際に、nullが帰ってきてしまい、以降の処理ができません・・・。
また、下記処理はすべてjpgで行っていますが、本当はTiffファイルを作りたいのです。
ImageIOクラスは標準ではTiffは対応していないようなのですが、実際に下記ソースの"jpg"を"tif"に変更しても問題はないのでしょうか?
質問が煩雑で申し訳ないですが、よろしくお願いいたします。
以下ソース抜粋です。
----------------------------------------------------------------
ImageOutNum = (String)rs.get("IMAGEGRPNO"+i)+"_"+(String)rs.get("IMAGENO"+i);
// イメージファイルを作成する。
File imagef = new File(outPath2);
if(!(imagef.exists()))imagef.mkdirs();
InputStream inImage = (InputStream)rs.get("IMAGEFILE"+i);
if (inImage != null) {
FileOutputStream outImage =
new FileOutputStream(outPath2 + ImageOutNum + ".jpg");
//画像書き込み
int j;
while ((j = inImage.read()) != -1) {
outImage.write(j);
}
// 解放
outImage.close();
//イメージ変更処理
InputStream orgImageFile = null;
orgImageFile = new FileInputStream(outPath2 + ImageOutNum + ".jpg");
BufferedImage orgImage = ImageIO.read(orgImageFile);//ここでorgImageにnullが返されてしまいます。
int width = 640;
int height = (int)(((double)width / orgImage.getWidth()) * (double)orgImage.getHeight());
BufferedImage resizeImage = new BufferedImage(width, height, orgImage.getType());
// ここからリサイズ処理
AffineTransformOp ato = null;
ato = new AffineTransformOp(
AffineTransform.getScaleInstance((double)width / orgImage.getWidth(),(double) height / orgImage.getHeight()),null);
ato.filter(orgImage, resizeImage);
// ここまでリサイズ処理
ImageOutputStream imageStream = ImageIO.createImageOutputStream(new File(outPath2 + ImageOutNum + ".jpg"));
ImageWriter writer = null;
Iterator it = (Iterator) ImageIO.getImageWritersByFormatName("jpg");
writer = (ImageWriter) it.next();
writer.setOutput(imageStream);
JPEGImageWriteParam jpgWriter = new JPEGImageWriteParam(Locale.getDefault());
jpgWriter.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpgWriter.setCompressionQuality(1f);
writer.write(null, new IIOImage(resizeImage, null, null), jpgWriter);
imageStream.flush();
writer.dispose();
imageStream.close();
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# ListBoxのインデックスの値...
-
逆コンパイルの見方について(...
-
ORA-01858: 数値を指定する箇所...
-
HashMapで要素を指定から削除
-
gas カレンダー祭日設定でエラー
-
JSPで複数のSQL実行につ...
-
全取得したデータをjspで順番に...
-
実数からの小数部の取得
-
c# デリゲート関連の命名について
-
javaで電卓を作りたいのですが...
-
ダブルクォーテーションのrepla...
-
C# タスクバーを隠したフォーム...
-
ArrayList内HashMapの取得
-
文字コード判別ルーチンGet...
-
javaのCSVデータ読込についてです
-
ArrayListを利用する問題
-
VB6,論理演算子Orの使い方がわ...
-
csv出力について
-
Selenium IDEでexportしたコー...
-
ページング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
配列にnullを代入すると、null...
-
Java配列でNullPointerExceptio...
-
BOOL値を逆にしたい
-
getStringの値がNULLの時の処理
-
C# ListBoxのインデックスの値...
-
eclipseでoracle接続時のエラー...
-
例外でBeanUtils.populateが、...
-
jsp/Servletの動的に増えるフォ...
-
Stringを返す getText()メソッ...
-
gas カレンダー祭日設定でエラー
-
JSPでの画面表示の方法
-
空欄のテキストフィールドの判...
-
C#でラジオボタンとコンボボッ...
-
JSPで複数のSQL実行につ...
-
逆コンパイルの見方について(...
-
Safari ダウンロード時に日本語...
-
java DAO 日付指定フォーマット...
-
oracle10g java jdbc 大量inser...
-
MySQLのテーブル名を変数に置い...
おすすめ情報