zoukankan      html  css  js  c++  java
  • 【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;
            }
        }
    }
  • 相关阅读:
    flex布局知识总结
    js,ts操作dom总结
    编译原理 语法树 句柄 简单短语 短语
    linux基础命令期末考试总结
    arm汇编指令--str ldr
    npm常用命令(原创)
    JS获取图片的缩略图
    Spring MVC 返回Json IE出现下载
    jquery获取页面iframe内容
    MySQL 下 ROW_NUMBER / DENSE_RANK / RANK 的实现
  • 原文地址:https://www.cnblogs.com/tiandsp/p/7440483.html
Copyright © 2011-2022 走看看