C#で画像ファイルをTiffファイルに変換する

C# コンピュータ
C#

ファイル名:ImgToTiff01.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

</Project>

dotnet.exeでconsoleプロジェクトを作成し、WPFを使うのでUserWPFをtrueで追加とTargetFrameworkをnet8.0-windowsに変更
ファイル名:Program.cs

using System.IO;
using System.Windows.Media.Imaging;

class Program
{
    static public int ImgToTiff(string srcFile, string dstFile)
    {
        using FileStream ifs = new (srcFile, FileMode.Open, FileAccess.Read);

        // Tiffエンコーダー
        TiffBitmapEncoder encoder = new()
        {
            Compression = TiffCompressOption.Zip,
        };

        // BitmapFrame
        BitmapFrame frame = BitmapFrame.Create(ifs);

        // エンコーダーに追加
        encoder.Frames.Add(frame);

        // 書き込み
        using FileStream ofs = new (dstFile, FileMode.Create, FileAccess.Write);
        encoder.Save(ofs);

        return 0;
    }
    static public int Main(string[] args)
    {
        if (args.Length < 2)
        {
            Console.WriteLine("ImgToTiff src.png dst.tif");
            return 1;
        }
        return ImgToTiff(args[0], args[1]);
    }
}

作成されるファイルサイズ

TiffCompressOption.Zipの場合PNGと同じぐらいのファイルサイズ

-a---          2024/09/30     0:47          41434 sample.png
-a---          2024/10/14    16:32          45094 sample.tif

TiffCompressOption.Defaultの場合ファイルサイズは大き目

-a----        2024/09/30      0:47          41434 sample.png
-a----        2024/10/14     16:38          94526 sample.tif

コメント