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

■35461 / 親記事)  C#でJpeg圧縮のTiffファイルを作成したい
  
□投稿者/ たろう 一般人(1回)-(2023/06/26(Mon) 10:58:52)
  • アイコン環境/言語:[Windows10 / C# / VisualStudio2015 / .Net Framework4.0] 
    分類:[.NET] 

    過去、Visual Studio 2015を使って、Tiffファイルを作成するアプリケーションを作成しました。

    最近になって「LEADTOOLSではJpeg圧縮のTiffファイルが作れるのに、あなたのソフトではできないのか?」といった問い合わせをもらいました。
    どうやらTiffでイメージ保存をしたいが、カラー画像だとサイズが大きいので画像はJpegにしたい(でもファイル形式はTiffのまま)ということのようです。

    私が作成した保存処理はTiffBitmapEncoderを使用しており、Compressionプロパティにセットできるものを調べるとJpegはありませんでした。

    有料のライブラリなどを使用せず、Jpeg圧縮のTiffファイルを保存する方法はないものでしょうか。
    (LEADTOOLSはライセンス料が高額なため使用したくない、という理由で.Netの機能を使用して画像保存を作成した経緯があります)

マルチポストを報告
違反を報告
引用返信 削除キー/
■35462 / ResNo.1)  Re[1]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ Hongliang 大御所(643回)-(2023/06/26(Mon) 12:48:38)
  • アイコンとりあえず、Windows 10 22H2では、 TiffBitmapEncoderを使っては無理みたいですね。
    // System.Windows.Media.Imaging.TiffCompressOptionには未定義の7というのも指定可能でしたが、これもLZWベースのようです。
    System.Drawingの方でも有効そうなものは見つからないので、少なくとも現時点では、恐らく.NET標準ライブラリでは扱えないでしょう。

    // System.Windows.Media.ImagingにせよSystem.DrawingにせよOSの機能をそのまま呼び出しているだけなので、そのうちWindowsのTIFFエンコーダがサポートするようになる可能性はゼロではないですが、期待薄と思います。

    どうしてもというなら、何らかのサードパーティ製ライブラリを使用するしかないでしょうね。
    NugetにはいくつかTIFFのライブラリがあるようです。ライセンスを確認の上で試されてみてはいかがでしょうか。
違反を報告
引用返信 削除キー/
■35463 / ResNo.2)  Re[2]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ たろう 一般人(2回)-(2023/06/26(Mon) 16:47:50)
  • アイコンNo35462に返信(Hongliangさんの記事)

    > どうしてもというなら、何らかのサードパーティ製ライブラリを使用するしかないでしょうね。
    > NugetにはいくつかTIFFのライブラリがあるようです。ライセンスを確認の上で試されてみてはいかがでしょうか。

    なるほど、やはり現在の.Netの標準ライブラリでは無理そうですね。
    商用利用もできて、安価もしくは無料で利用できるライブラリがないか探してみます。


違反を報告
引用返信 削除キー/
■35464 / ResNo.3)  Re[3]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ KOZ 一般人(20回)-(2023/06/27(Tue) 09:33:53)
  • アイコン
    2023/06/27(Tue) 09:36:20 編集(投稿者)
    
    ■No35463に返信(たろうさんの記事)
    
    Magick.NET でイケるようです。(ライセンスは Apache License 2.0)
    NuGet から Magick.NET.Core と Magick.NET-Q16-AnyCPU をインストールしてください。
    
    using ImageMagick;
    static class Program
    {
        [STAThread]
        static void Main() {
            using (MagickImage image = new MagickImage(@"z:\temp\test.png")) {
                image.Format = MagickFormat.Tiff;
                image.Settings.Compression = CompressionMethod.JPEG;
                image.Write(@"z:\temp\test.tif");
            }
        }
    }
    

違反を報告
引用返信 削除キー/
■35465 / ResNo.4)  Re[4]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ たろう 一般人(3回)-(2023/06/27(Tue) 15:47:44)
  • アイコンNo35464に返信(KOZさんの記事)
    > Magick.NET でイケるようです。(ライセンスは Apache License 2.0)


    情報ありがとうございます!
    試してみます。


解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -