ここでは、C#のGUIのフレームワークであるWPFのサンプルプログラムを、ChatGPTの力を借りながら、作ったサンプルコードをまとめています。実行可能であることは確認していますが、WPF初学者の私がChatGPTと作っているので、ベストな方法ではないかもしれませんので、ご了承ください。
画像表示
画像ファイルを選択して表示し、白黒変換をするサンプル。
以下は、ChatGPTへのプロンプト。
Visual Studio Express 2017で、PCで動くシンプルなアプリを作ります。
GUIにはWFPを使います。
仕様は以下の通りです。
MainWindow に配置するコンポーネント
+「ファイル選択」のボタン
+画像表示領域
+「白黒」ボタン
+「カラー」ボタン
動作は次の通りです。
+「ファイル選択」ボタンを押すと、ファイル選択ポップアップから画像ファイル(jpg, png)が選べます。
+すると、選択した画像が、画像領域に表示されます。
+「白黒」ボタンを押すと、画像が白黒で表示されます。
+「カラー」ボタンを押すと、画像がカラーで表示されます。
このアプリのXAMLのコードと、C#のコードを作ってください。
生成された MainWindow.xaml
<Window x:Class="SimpleImageConverter.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Simple Image Converter" Height="350" Width="500">
<Grid>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Top" Margin="10">
<Button Content="ファイル選択" Click="OpenFileButton_Click"/>
<Image x:Name="imageView" Margin="0,10" Width="300" Height="200"/>
<Button Content="白黒" Click="ConvertToBlackAndWhiteButton_Click"/>
<Button Content="カラー" Click="ConvertToColorButton_Click"/>
</StackPanel>
</Grid>
</Window>
生成された MainWindow.xaml.cs
using Microsoft.Win32;
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace SimpleImageConverter
{
public partial class MainWindow : Window
{
private BitmapImage originalImage;
public MainWindow()
{
InitializeComponent();
}
private void OpenFileButton_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Image files (*.jpg, *.png)|*.jpg;*.png|All files (*.*)|*.*";
if (openFileDialog.ShowDialog() == true)
{
string selectedFilePath = openFileDialog.FileName;
originalImage = new BitmapImage(new Uri(selectedFilePath));
imageView.Source = originalImage;
}
}
private void ConvertToBlackAndWhiteButton_Click(object sender, RoutedEventArgs e)
{
if (originalImage != null)
{
BitmapSource grayscaleImage = ConvertToGrayscale(originalImage);
imageView.Source = grayscaleImage;
}
}
private void ConvertToColorButton_Click(object sender, RoutedEventArgs e)
{
if (originalImage != null)
{
imageView.Source = originalImage;
}
}
private BitmapSource ConvertToGrayscale(BitmapSource sourceImage)
{
FormatConvertedBitmap grayscaleBitmap = new FormatConvertedBitmap();
grayscaleBitmap.BeginInit();
grayscaleBitmap.Source = sourceImage;
grayscaleBitmap.DestinationFormat = PixelFormats.Gray8;
grayscaleBitmap.EndInit();
return grayscaleBitmap;
}
}
}じ
Visual Studio Express 2017 で実行した画面。
ファイルを選択しすると画像が表示される。
「白黒」を押すと画像が白黒表示になる。
ちなみに画像は、バーチャルでブラジルに行った時の写真です。


コメントを残す