バーラル @ ウィキ

[C#で画像処理を導入!?]の変更点

「C#で画像処理を導入!?」の編集履歴(バックアップ)一覧はこちら

C#で画像処理を導入!?」(2011/01/19 (水) 23:05:15) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*C#で画像処理するまでの導入編 何を隠そうとあるすばらしいサイトを見ながらコーディングしました!勉強になりました。本当にありがとうございます!!!! 参考したすばらしいサイト→[[初めてのC#~覚え書き~>http://homepage3.nifty.com/midori_no_bike/CS/]] あれぇ?コメントまで丸パクリ・・・というかコピペ・・・さーせん>< **見た目はこんな感じ↓ #image(C#お絵かきフォーム!.jpg,title=C#お絵かきフォーム) **ソースはこんな感じ↓(長いけどとっても簡単★) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; // for ImageFormat namespace お絵かき用 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void 白紙にするToolStripMenuItem_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private void 線ToolStripMenuItem_Click(object sender, EventArgs e) { //Graphicsオブジェクトの作成 Graphics g = pictureBox1.CreateGraphics(); //(0,0)-(100,100)に、幅1の黒い線を引く g.DrawLine(Pens.Black, 0, 0, 100, 100); //リソースを開放する g.Dispose(); } private void button1_Click(object sender, EventArgs e) { try { pictureBox1.Image = Image.FromFile(textBox1.Text); } catch { MessageBox.Show("指定が正しくありません!"); } // Note: 表示位置は、SizeMode プロパティで設定する。 // Normal = 左上隅に表示(既定値) // CenterImage = 中央 に表示 // AutoSize = 左上隅に表示(PictureBox の背景色は表示しない) // StretchImage = 画像を伸縮し、PictureBox の領域いっぱいに表示 // Note: PictureBox は、BMP/GIF/JPEG/PNG/TIFF/ICON 形式をサポートしている。 } private void button4_Click(object sender, EventArgs e) { try { label1.Text = "これは\nラベル1の\nテキストです。"; label1.Image = Image.FromFile(textBox2.Text); } catch { MessageBox.Show("指定が正しくありません!"); } // Note: 表示位置は、ImageAlign プロパティで設定する。 // MiddleCenter = 中央 に表示(既定値) // TopLeft = 左上隅に表示 // Note: Label は、BMP/GIF/JPEG/PNG/TIFF/ICON 形式をサポートしている } private void button2_Click(object sender, EventArgs e) { //Bitmap bmp = new Bitmap("D:\\TMP\\orchid_small.jpg"); Bitmap bmp = new Bitmap(textBox1.Text); string format = bmp.RawFormat.ToString(); // bmp の画像形式を文字列で取得 string ext = // 画像の拡張子を求める (format.IndexOf("b96b3cab-0728-11d3-9d7b-0000f81ef32e") != -1) ? "bmp" : (format.IndexOf("b96b3cb0-0728-11d3-9d7b-0000f81ef32e") != -1) ? "gif" : (format.IndexOf("b96b3caf-0728-11d3-9d7b-0000f81ef32e") != -1) ? "png" : (format.IndexOf("b96b3cae-0728-11d3-9d7b-0000f81ef32e") != -1) ? "jpg" : (format.IndexOf("b96b3cb1-0728-11d3-9d7b-0000f81ef32e") != -1) ? "tif" : (format.IndexOf("b96b3cb5-0728-11d3-9d7b-0000f81ef32e") != -1) ? "ico" : "xxx"; label2.Text ="画像形式"+ ext; } private void button5_Click(object sender, EventArgs e) { //Bitmap bmp = new Bitmap("D:\\TMP\\orchid_small.jpg"); Bitmap bmp = new Bitmap(textBox2.Text); string format = bmp.RawFormat.ToString(); // bmp の画像形式を文字列で取得 string ext = // 画像の拡張子を求める (format.IndexOf("b96b3cab-0728-11d3-9d7b-0000f81ef32e") != -1) ? "bmp" : (format.IndexOf("b96b3cb0-0728-11d3-9d7b-0000f81ef32e") != -1) ? "gif" : (format.IndexOf("b96b3caf-0728-11d3-9d7b-0000f81ef32e") != -1) ? "png" : (format.IndexOf("b96b3cae-0728-11d3-9d7b-0000f81ef32e") != -1) ? "jpg" : (format.IndexOf("b96b3cb1-0728-11d3-9d7b-0000f81ef32e") != -1) ? "tif" : (format.IndexOf("b96b3cb5-0728-11d3-9d7b-0000f81ef32e") != -1) ? "ico" : "xxx"; label3.Text = "画像形式" + ext; } private void button3_Click(object sender, EventArgs e) { // 画像形式の変換&保存★PictureBoxの変換&保存 ImageFormat image_format1; switch (comboBox1.Text) { case "Bmp": image_format1 = ImageFormat.Bmp; break; case "Gif": image_format1 = ImageFormat.Gif; break; case "Jpeg": image_format1 = ImageFormat.Jpeg; break; case "Png": image_format1 = ImageFormat.Png; break; case "Tiff": image_format1 = ImageFormat.Tiff; break; default: image_format1 = ImageFormat.Bmp; break; } pictureBox1.Image.Save( textBox1.Text + "." + comboBox1.Text, // 保存するファイル名 image_format1); // 保存する画像形式 // Note: Image.Save() は、ファイルを強制上書きモードで保存する。 } private void button6_Click(object sender, EventArgs e) { // 画像形式の変換&保存★ラベルの変換&保存 ImageFormat image_format2; switch (comboBox2.Text) { case "BMP": image_format2 = ImageFormat.Bmp; break; case "GIF": image_format2 = ImageFormat.Gif; break; case "JPEG": image_format2 = ImageFormat.Jpeg; break; case "PNG": image_format2 = ImageFormat.Png; break; case "TIFF": image_format2 = ImageFormat.Tiff; break; default: image_format2 = ImageFormat.Bmp; break; } label1.Image.Save( textBox2.Text + "." + comboBox2.Text, // 保存するファイル名 image_format2); // 保存する画像形式 // Note: Image.Save() は、ファイルを強制上書きモードで保存する。 //画像の保存にはusing System.Drawing.Imaging ; // for ImageFormatが必要! } private void button9_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); } private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { textBox1.Text = openFileDialog1.FileName; } private void button10_Click(object sender, EventArgs e) { /* *ソリューションエクスプローラで、追加 → 既存項目の追加 を選択すると、ダイアログ *が開くので、そこで、埋め込みたいファイル "image1.jpg" を選択する(このファイルは、 *プロジェクト フォルダへ自動的にコピーされる)。 *次に、このプロパティのページを開き、ビルドアクションを「埋め込まれたリソース」に *設定する。 */ Bitmap bit_map1 = new Bitmap(GetType(), "scene.jpg"); // データを取り出す pictureBox1.Image = bit_map1; // 画像の表示 label1.Image = bit_map1; } private void button11_Click(object sender, EventArgs e) { // 読み込む画像の格納用ビットマップの宣言 Bitmap bit_map1 = null; try { // textBox1 で指定された画像ファイルをロード bit_map1 = new Bitmap(textBox2.Text); } catch { MessageBox.Show("ファイルがNGです!", Application.ProductName); return; } int sizeX = bit_map1.Width; int sizeY = bit_map1.Height; // 加工した画像の格納用ビットマップの宣言(32bitカラーピクセル形式) Bitmap bit_map2 = new Bitmap(sizeX, sizeY, PixelFormat.Format32bppArgb); for (int Y = 0; Y < sizeY; Y++) { for (int X = 0; X < sizeX; X++) { int P = bit_map1.GetPixel(X, Y).ToArgb(); // ピクセルデータの取得 if (radioButton2.Checked) P ^= 0xffffff; // 反転色の計算 bit_map2.SetPixel(X, Y, Color.FromArgb(P)); // ピクセルデータの設定 } } label1.Image = bit_map2; } private void button12_Click(object sender, EventArgs e) { label1.Image = new Bitmap(label1.Width, label1.Height); Graphics g = Graphics.FromImage(label1.Image); g.ResetTransform(); // 各変換設定値のリセット g.ScaleTransform(0.7F, 0.7F); // X軸とY軸の拡大率の設定 g.DrawImage(Image.FromFile(textBox2.Text), 30, 30); // 描画(label1 を元に 指定した座標へ) } } } ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: