ファイル名: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
コメント