找了系上某位老師討論如何優化,他告訴我必須先有影像基礎以及如何將黑轉白白轉黑實做出來
那時候我大概就放棄了,畢竟得耗費更多時間在上頭
而且影像辨識不是我的擅長領域,突然想到這件事情就來實做吧
首先用小畫家開個2*2的影像,再來將圖片點成對角線白與黑
我的方法就是判斷Argb為相同值,如果是就將其顏色對換成另一種顏色
改變前
改變後
using System; using System.Drawing; using System.Windows.Forms; namespace Change_Image { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button_ReadImage_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "PNG|*.png"; if (dialog.ShowDialog() == DialogResult.OK) { this.pictureBox1.Image = Image.FromFile(dialog.FileName); } } private void button_ChageImage_Click(object sender, EventArgs e) { if (this.pictureBox1.Image != null) { Bitmap image = new Bitmap(this.pictureBox1.Image); for (int width = 0; width < image.Width; width++) { for (int heigth = 0; heigth < image.Height; heigth++) { Color color = image.GetPixel(width, heigth); if (color.ToArgb() == Color.Black.ToArgb()) { image.SetPixel(width, heigth, Color.White); } else if (color.ToArgb() == Color.White.ToArgb()) { image.SetPixel(width, heigth, Color.Black); } } } this.pictureBox1.Image = image; } } } }
參考資料:
http://www.dotblogs.com.tw/junegoat/archive/2012/08/15/c-sharp-filter-lockbits-make-stone-like.aspx
http://blog.526net.com/?p=2258