mkdir QQR
cd QQR
dotnet new sln
mkdir QQR.WPFLib
cd QQR.WPFLib
dotnet new wpflib
dotnet sln ..\QQR.sln add QQR.WPFLib.csproj
cd ..
mkdir QQR.Console
cd QQR.Console
dotnet new console
code QQR.Console.csproj
//TargetFrameworkをnet7.0からnet7.0-windowsへ変更
dotnet sln ..\QQR.sln add QQR.Console.csproj
dotnet add reference ..\QQR.WPFLib
dotnet add package System.Console
ソースコード
ファイル名:QQR.WPFLib\Class1.cs
using System;
using System.Windows.Media.Imaging;
using System.IO;
namespace QQR.WPFLib;
public class Class1
{
public static void ConvertPNG(string srcFile, string destFile)
{
using var fs = new FileStream(srcFile, FileMode.Open, FileAccess.Read);
var bi = new BitmapImage();
bi.BeginInit();
bi.CreateOptions = BitmapCreateOptions.None;
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.StreamSource = fs;
bi.EndInit();
bi.Freeze();
using var stream = new FileStream(destFile, FileMode.Create, FileAccess.Write);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bi));
encoder.Save(stream);
}
}
ファイル名:QQR.Console\Program.cs
using System;
using System.Diagnostics;
namespace QQR.Console;
class Program1
{
public static void Main()
{
string srcFile = @"C:\Users\karet\Pictures\20230430\1680690888774.jpg";
string destFile = @"F:\csharp\QQR\output.png";
QQR.WPFLib.Class1.ConvertPNG(srcFile, destFile);
System.Console.WriteLine("aaa");
}
}
コメント