DOBON.NET DOBON.NETプログラミング掲示板過去ログ

tif画像をgif画像にする方法

分類:[その他]


tif形式の画像を、GIF画像に変更して保存するプログラムを作りたいのですが、以下のコードだと1行目でメモリが足りませんと表示されてしまいます。
どうしたらよいのでしょうか?

Dim img As Image = Image.FromFile("aaa.tif")
img.Save("aaa.gif", Imaging.ImageFormat.Gif)
img.Dispose()
■No25941に返信(ケンさんの記事)
>
> tif形式の画像を、GIF画像に変更して保存するプログラムを作りたいのですが、以下のコードだと1行目でメモリが足りませんと表示されてしまいます。
> どうしたらよいのでしょうか?
>
> Dim img As Image = Image.FromFile("aaa.tif")
> img.Save("aaa.gif", Imaging.ImageFormat.Gif)
> img.Dispose()
>
■No25941に返信(ケンさんの記事)
> 以下のコードだと1行目でメモリが足りませんと表示されてしまいます。

元の tif 画像のサイズ・圧縮形式等は、どのような物でしょうか?

試しに、
 http://db.g-search.or.jp/wdbs/sample/wzfs.html
から入手できる [ダウンロード小(TIFF形式)] を用いて、
 Dim s As String = "C:\sample_DA4M.tiff"
 Using img As Image = Image.FromFile(s)
  img.Save("C:\aaa.gif", Imaging.ImageFormat.Gif)
 End Using
というコードを記述したところ、エラーなく保存されました。
お返事ありがとうございます。
魔界の仮面弁士さんが使ったtif画像のページプロパティを見たところ
イメージパラメータの圧縮がLZWになっていました。
私の使っている画像はJPEGとなっていました。
サイズは15.9KBです。
やはり、私のTIF画像のみでエラーが起きています。

対処法はあるのでしょうか?








■No25945に返信(魔界の仮面弁士さんの記事)
> ■No25941に返信(ケンさんの記事)
>>以下のコードだと1行目でメモリが足りませんと表示されてしまいます。
>
> 元の tif 画像のサイズ・圧縮形式等は、どのような物でしょうか?
>
> 試しに、
>  http://db.g-search.or.jp/wdbs/sample/wzfs.html
> から入手できる [ダウンロード小(TIFF形式)] を用いて、
>  Dim s As String = "C:\sample_DA4M.tiff"
>  Using img As Image = Image.FromFile(s)
>   img.Save("C:\aaa.gif", Imaging.ImageFormat.Gif)
>  End Using
> というコードを記述したところ、エラーなく保存されました。
■No25947に返信(ケンさんの記事)
> 私の使っている画像はJPEGとなっていました。
> サイズは15.9KBです。
その画像を公開できますか?
もしくは、同じフォーマットの画像を何処かのサイトから入手できますか?

手元に環境が無いので、検証する事ができません…。
IrfanView で Jpeg 圧縮の TIFF を作れたので実験しました。
GDI+ では Jpeg 圧縮された TIFF は扱えないようですね。OutOfMemoryException じゃなくて ArgumentException でしたが。
Vista のペイントでもフォトギャラリーでも開けれないし、プロパティの詳細でもパラメータ取得に失敗してるっぽいですし(圧縮の項目も空)。
// WIC の TiffDecoder on Vista でも無理だった。

となると Susie プラグインとかのライブラリを使うことになるかな。

DOBON.NET | プログラミング道 | プログラミング掲示板