ここでは、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 で実行した画面。
ファイルを選択しすると画像が表示される。
「白黒」を押すと画像が白黒表示になる。
ちなみに画像は、バーチャルでブラジルに行った時の写真です。
コメントを残す