Transform.Lib/Imaging/ImageData.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;

namespace YLScsDrawing.Imaging
{
    /// <summary>
    /// Using InteropServices.Marshal mathods to get image channels (R,G,B,A) byte
    /// </summary>
    public class ImageData : IDisposable
    {
        private byte[,] _red, _green, _blue, _alpha;
        private bool _disposed = false;

        public byte[,] A
        {
            get { return _alpha; }
            set { _alpha = value; }
        }
        public byte[,] B
        {
            get { return _blue; }
            set { _blue = value; }
        }
        public byte[,] G
        {
            get { return _green; }
            set { _green = value; }
        }
        public byte[,] R
        {
            get { return _red; }
            set { _red = value; }
        }

        public ImageData Clone()
        {
            ImageData cb = new ImageData();
            cb.A = (byte[,])_alpha.Clone();
            cb.B = (byte[,])_blue.Clone();
            cb.G = (byte[,])_green.Clone();
            cb.R = (byte[,])_red.Clone();
            return cb;
        }

        # region InteropServices.Marshal mathods
        public void FromBitmap(Bitmap srcBmp)
        {
            int w = srcBmp.Width;
            int h = srcBmp.Height;

            _alpha = new byte[w, h];
            _blue = new byte[w, h];
            _green = new byte[w, h];
            _red = new byte[w, h];

            // Lock the bitmap's bits.  
            System.Drawing.Imaging.BitmapData bmpData = srcBmp.LockBits(new Rectangle(0, 0, w, h),
                System.Drawing.Imaging.ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
后面还有 126 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。