- - PR -
javaでのTiffイメージ変換処理
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-12-10 13:42
@IT初参加です。
いきなりで申し訳ないのですが、皆様にご相談があります。 現在、業務でTIFFファイルの画像変換(ピクセル、dpi値を変更)をしなければならなりません。 Java初心者ながらも四苦八苦してやっと Tiffファイルのサイズ変更のソースにたどり着いたのですが、 実行してみるととても画質が粗くなっており、 また、ファイルによっては半分ほど画像が削られてしまうという現象があらわれてしまいました。 何か対処法を思いつく方はどうぞよろしくお願いいたします。 以下、ソース抜粋です。 ------------------------------------------------------------------------------- public class ImageConvert { /** ログ */ private static CCLogUtil log = CCLogUtil.getLogger(); private static String tif = ".tif"; private static String jpg = ".jpg"; public ImageConvert() { } public static void tiffconvert(String filename){ try{ //イメージ変更処理 InputStream orgImageFile = null; orgImageFile = new FileInputStream(filename+tif); BufferedImage orgImage = ImageIO.read(orgImageFile); int width = 413; int height = 585; 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); // ↑ここまでリサイズ処理 //イメージ書き込み処理 ImageIO.write(resizeImage, "tiff", new File(filename+"after"+tif)); }catch (FileNotFoundException e) { log.printWarn("データファイルが見つかりません。" + e); // e.printStackTrace(); System.exit(2); } catch (IOException e) { log.printWarn(e, "データファイルの作成に失敗しました。"); System.exit(2); } } } ------------------------------------------------------------------------------- | ||||||||
|
投稿日時: 2008-12-10 21:12
Javaでやらずに
ツールを呼び出してみてはいかがでしょうか | ||||||||
|
投稿日時: 2008-12-10 21:15
ご返答ありがとうございます。
ツールのことも考えているのですが、顧客環境で少し問題があるようで できればJavaでやりたいと思っているのですが・・・。 やはりJavaには限界があるのでしょうか? | ||||||||
|
投稿日時: 2008-12-11 10:01
いろいろと作りこんだりすれば可能なはずです。
各クラスの使い方の問題になるのかも。 実際PureJavaな画像ソフトありますし。 いろいろ作り込むのは面倒なので 外部ツールを利用する方が 楽にできるのは確かです | ||||||||
|
投稿日時: 2008-12-11 13:50
コメントありがとうございます。
やはりそのようですね・・・。 外部ツールの使用を考えてみます。 | ||||||||
|
投稿日時: 2008-12-15 10:39
AffineTransformOp はデフォルトで最近傍補間を使うので、拡大縮小を行うと画像が粗くなる可能性があります。バイキュービックでやってみたらいかがですか。
ここの部分を以下のように変更します。
| ||||||||
|
投稿日時: 2008-12-24 14:18
ありがとうございます。
この方法でやってみたいと思います。 また何かわからないことがあれば質問させてください。 |
1