C#で画像ファイルをPNG形式に変換するCLIアプリ

コンピュータ

Program.cs

// 画像ファイルをPNG形式に変換するCLIアプリ

using OpenCvSharp;

if (args.Length == 0)
{
    Console.WriteLine("usage: ImageToPng <input image> [output.png]");
    return;
}

string input = args[0];

string output = args.Length >= 2
    ? args[1]
    : Path.ChangeExtension(input, ".png");

if (!File.Exists(input))
{
    Console.WriteLine("file not found");
    return;
}

using var img = Cv2.ImRead(input, ImreadModes.Unchanged);

if (img.Empty())
{
    Console.WriteLine("image load failed");
    return;
}

Cv2.ImWrite(output, img);

Console.WriteLine($"saved : {output}");

/*

// プロジェクトの作成
dotnet new console
dotnet add package OpenCvSharp4
dotnet add package OpenCvSharp4.runtime.win

// ビルド&インストール
dotnet pack -c Release
dotnet tool install --global ImageToPNG --add-source .\bin\Release

// 使い方
ImageToPng.exe input.bmp output.png

*/

ImageToPng.csproj

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <!-- 追加 ここから -->
    <PackAsTool>true</PackAsTool> 
    <ToolCommandName>ImageToPng</ToolCommandName>
    <IsPackable>true</IsPackable>
    <PackageId>ImageToPng</PackageId>
    <Version>1.0.0</Version>
    <!-- 追加 ここまで -->

  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenCvSharp4" Version="4.13.0.20260308" />
    <PackageReference Include="OpenCvSharp4.runtime.win" Version="4.13.0.20260302" />
  </ItemGroup>

</Project>

グローバルツールとしてインストールするための設定を追加

コメント