分享

【C#学习笔记】图片像素操作

 goodwangLib 2018-01-31
复制代码
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;namespace WindowsFormsApplication4{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { OpenFileDialog dig = new OpenFileDialog(); if (dig.ShowDialog() == DialogResult.OK) pictureBox1.Image = Image.FromFile(dig.FileName); } unsafe private void button2_Click(object sender, EventArgs e) { Bitmap bitmap =(Bitmap)pictureBox1.Image.Clone(); //创建副本,避免操作原图像 Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height); BitmapData bmpdata= bitmap.LockBits(rect, ImageLockMode.ReadWrite,bitmap.PixelFormat); byte* pix = (byte*)bmpdata.Scan0; if (bitmap.PixelFormat==PixelFormat.Format8bppIndexed) //是否为灰度图 { for (int i = 0; i < bmpdata.height;="">) { for (int j = 0; j < bmpdata.width;="">) { pix[0] = (byte)(255 - pix[0]); //反色 pix++; } } } else { for (int i = 0; i <> ) { for (int j = 0; j <> ) { pix[0] = (byte)(255 - pix[0]); //反色 pix[1] = (byte)(255 - pix[1]); pix[2] = (byte)(255 - pix[2]); pix = pix + 3; } } } bitmap.UnlockBits(bmpdata); pictureBox2.Image=bitmap; } }}
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多