【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;

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; i++)
                {
                    for (int j = 0; j < bmpdata.Width; j++)
                    {
                        pix[0] = (byte)(255 - pix[0]);      //反色
                        pix++;
                    }
                }
            }
            else
            {
                for (int i = 0; i < bmpdata.Height;i++ )
                {
                    for (int j = 0; j < bmpdata.Width;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;
        }
    }
}
时间: 2024-10-13 12:30:10

【C#学习笔记】图片像素操作的相关文章

jQuery学习笔记--JqGrid相关操作 方法列表(上)

1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选中行:$("#jqGrid

ios学习笔记图片+图片解释(c语言 oc语言 ios控件 ios小项目 ios小功能 swift都有而且笔记完整喔)

下面是目录其中ios文件夹包括了大部分ios控件的介绍和演示,swift的时完整版,可以学习完swift(这个看的是swift刚出来一周的视频截图,可能有点赶,但是完整),c语言和oc语言的也可以完整的学习完所需知识,,其他文件夹的内容如其名说描述一样 没张图片都有文字说明,可以需要该功能的时候搜索一下然后打开图片就可以学习到 网盘下载地址:需要的话给留言我再传上去 http://www.cnblogs.com/langtianya原创 ios学习笔记图片+图片解释(c语言 oc语言 ios控件

mongodb 学习笔记 02 -- CURD操作

mongodb 学习笔记 02 – CURD操作 CURD代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作 创建库 直接 use 库名 然后创建collection 就可以创建库 创建collecion db.createCollection("collectionName") 隐式创建collection db.collectionName.insert({xxxxxx}) 删除collection db.collectionName.dro

java学习笔记07--日期操作类

java学习笔记07--日期操作类 一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. [java] view plaincopy public class T { public static void main(String[] args) { Date date  = new Date(); System.out.println("当前日期:"+date); //当前日期:Thu May 16 23:00:57 CST 

学习笔记_SVN常用操作

Subversion安装 subversion软件下载安装 http://subversion.tigris.org 我们使用版本Setup-Subversion-1.6.5.msi 双击安装Setup-Subversion-1.6.5.msi 命令模式: Subversion 组件  服务器组件 (管理员使用)  服务器端命令  svnadmin:用来调整和修正svn档案库的工具  svnserve:一个独立的服务器程序, 可以作为服务器行程执行, 或是被 SSH 启动; 另一个让你的档

Perl语言学习笔记 13 目标操作

1.改变目录 chdir "/etc" or die "can't chdir to '/etc'!\n"; 省略参数会回到用户主目录,与cd效果一样: 2.文件名通配 my @all_files = glob "*"; #不包括以点号开头的文件 my @pm_files = glob "*.pm"; 一次匹配多种模式,用空格隔开:my @files = ".* *"; #可以匹配所有的文件,包括以点号开头

HTML&CSS基础学习笔记6-文本操作标签

文本也许是HTML里最常见的元素了,所以我们有必要对HTML的文本操作标签做下认识. 1. <em>,<i>内的文字呈现为倾斜效果: 2. <strong>,<b>内的文字呈现为加粗效果: 3. <b>,<i>只是单纯的为了让文本具有某种特殊样式,而<strong>,<em>不仅带有特殊样式,而且也表达了某种语义: 4. 在单纯的为了达到某种样式的情况下,建议使用不带有语义的标签. 体验如下:http://ww

Symfony2学习笔记之数据库操作

数据库和Doctrine让我们来面对这个对于任何应用程序来说最为普遍最具挑战性的任务,从数据库中读取和持久化数据信息.幸运的是,Symfony和Doctrine进行了集成,Doctrine类库全部目标就是给你一个强大的工具,让你的工作更加容易. Doctrine是完全解耦与Symfony的,所以并不一定要使用它. 一个简单例子:一个产品,我们首先来配置数据库,创建一个Product对象,持久化它到数据库并把它读回来. 首先我们需要创建一个bundle: $php app/console gene

Opencv 中图片像素操作的应用实例——计算图片某一种颜色区域大小所占比

对图片进行处理,其中图片像素的处理是基本的过程,包括对图片像素的遍历,对每一个像素的RGB三个通道的灰度值的获取等. 以下是基于opencv 的一个应用实例,即计算图片中黄色区域大小占整个图片大小的比例. 1 // computerPercentage.cpp: 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include<iostream> 6 #include<opencv2/opencv.hpp> 7 #in