- 做 button1 → 讀圖。
- 做 button2 → 從左上角劃一綠線,至右下角。
- 做 button3 → 中間部位畫一50X150之紅色四邊形。
- 做 button4 → 存檔。
##ReadMore##
測試圖檔:https://sites.google.com/site/p501labsite/microsoft-virtual-studio/lena.png?attredirects=0&d=1
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 AForge.Imaging; using AForge.Imaging.Filters; using AForge.Imaging.Formats; namespace examination_1 { public partial class exam1 : Form { //statement Bitmap img_L, img_R; Color colorPixel; int[,] maR = new int[1024, 1024]; int[,] maG = new int[1024, 1024]; int[,] maB = new int[1024, 1024]; public exam1() { InitializeComponent(); } //Read File private void button1_Click(object sender, EventArgs e) { OpenFileDialog readImg = new OpenFileDialog(); if (readImg.ShowDialog() == DialogResult.OK) { img_L = new Bitmap(readImg.FileName); img_R = img_L; pictureBox1.Image = img_L; pictureBox2.Image = img_L; // 儲存原圖 colorPixel for (int i = 0; i < img_L.Width; i++) { for (int j = 0; j < img_L.Height; j++) { colorPixel = img_L.GetPixel(i, j); maR[i, j] = colorPixel.R; maG[i, j] = colorPixel.G; maB[i, j] = colorPixel.B; } } } } //Diagonal Top-left to Bottom-right private void button2_Click(object sender, EventArgs e) { // 對角線之 colorPixel for (int i = 0; i <= img_L.Height; i++) { maR[i, i] = 0; maG[i, i] = 0; maB[i, i] = 0; } // paint diagonal for (int i = 0; i < img_L.Width; i++) { for (int j = 0; j < img_L.Height; j++) { Color diagonalPixel = Color.FromArgb(maR[i, j], maG[i, j], maB[i, j]); img_R.SetPixel(i, j, diagonalPixel); } } pictureBox2.Image = img_R; } //Rectangle 50 x 150 private void button3_Click(object sender, EventArgs e) { int drawWidth = 50; int drawHeight = 150; // 中間繪圖點 int originX = img_L.Width / 2 - drawWidth / 2; int originY = img_L.Height / 2 - drawHeight / 2; for (int i = originX; i <= originX + drawWidth; i++) { for (int j = originY; j <= originY + drawHeight; j++) { maR[i, j] = 255; maG[i, j] = 0; maB[i, j] = 0; } } // paint rectangle for (int i = 0; i < img_L.Width; i++) { for (int j = 0; j < img_L.Height; j++) { Color rectanglePixel = Color.FromArgb(maR[i, j], maG[i, j], maB[i, j]); img_R.SetPixel(i, j, rectanglePixel); } } pictureBox2.Image = img_R; } //Save File private void button4_Click(object sender, EventArgs e) { saveFileDialog1.FileName = @"img.bmp"; saveFileDialog1.Filter = "Bitmap File(*.bmp) | *.bmp"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { img_R.Save(saveFileDialog1.FileName); } } private void Form1_Load(object sender, EventArgs e) { } } }
沒有留言:
張貼留言