BitmapSource.CopyPixel: 如何仅复制感兴趣的区域?
创始人
2024-12-19 19:00:03
0

您可以使用CroppedBitmap来创建一个新的位图,其中包含原始位图中的感兴趣区域。然后,您可以使用CopyPixels方法将感兴趣的区域复制到一个新的数组中。

下面是一个示例代码:

using System;
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace WpfApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // 读取原始位图
            BitmapImage originalImage = new BitmapImage(new Uri("original.bmp", UriKind.Relative));

            // 创建感兴趣区域(假设宽度是原始位图的一半,高度是原始位图的一半)
            Int32Rect croppedRect = new Int32Rect(0, 0, originalImage.PixelWidth / 2, originalImage.PixelHeight / 2);

            // 创建裁剪位图
            CroppedBitmap croppedBitmap = new CroppedBitmap(originalImage, croppedRect);

            // 创建目标数组
            int stride = croppedBitmap.PixelWidth * (croppedBitmap.Format.BitsPerPixel / 8);
            byte[] pixels = new byte[croppedBitmap.PixelHeight * stride];

            // 复制感兴趣的区域到目标数组
            croppedBitmap.CopyPixels(pixels, stride, 0);

            // 将目标数组保存为新的位图
            BitmapSource targetBitmap = BitmapSource.Create(croppedBitmap.PixelWidth, croppedBitmap.PixelHeight, croppedBitmap.DpiX, croppedBitmap.DpiY, croppedBitmap.Format, null, pixels, stride);

            // 保存为新的位图文件
            using (FileStream stream = new FileStream("cropped.bmp", FileMode.Create))
            {
                BmpBitmapEncoder encoder = new BmpBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(targetBitmap));
                encoder.Save(stream);
            }

            Console.WriteLine("Cropped bitmap saved.");
            Console.ReadLine();
        }
    }
}

在此示例中,我们首先读取一个名为"original.bmp"的原始位图。然后,我们使用CroppedBitmap类创建了一个新的裁剪位图,其中包含原始位图的一半大小的矩形区域。接下来,我们创建了一个目标数组,将感兴趣的区域复制到该数组中。最后,我们使用BitmapSource.Create方法将目标数组保存为新的位图,并将其保存到名为"cropped.bmp"的文件中。

请确保将"original.bmp"文件放在与代码文件相同的目录下,并根据需要更改文件名和路径。

相关内容

热门资讯

wpk ai辅助!wPk的确真... wpk ai辅助!wPk的确真的有挂,wpK的确真的有挂,2025新版(有挂黑科技);1、下载好wp...
WePoKe透明挂!wepko... WePoKe透明挂!wepkoe有外 挂,WepokE的确是有挂的,细节方法(有挂方法);原来确实真...
德州之星辅助!德扑之星真破解套... 德州之星辅助!德扑之星真破解套路,菠萝德州切实有挂(详细ai辅助有用教程)是一款可以让一直输的玩家,...
wpk有辅助挂!wpk透视辅助... wpk有辅助挂!wpk透视辅助器(wpK)就是真的有挂-详细透视教程1.wpk ai辅助创建新账号,...
wepoke智能ai!wepo... wepoke智能ai!wepoke计算辅助,wepoke软件透明挂存在,微扑克教程(有挂脚本)1、许...
德州ai辅助软件!德州之星有外... 德州ai辅助软件!德州之星有外 挂,德州扑克切实存在有挂(详细猫腻教程);人气非常高,ai更新快且高...
wpk ai辅助(wpK)wp... wpk ai辅助(wpK)wpk微扑克辅助(透视)一直真的有挂(分享教程)1、下载好微扑克辅助软件之...
WePoKe透明挂!wepok... WePoKe透明挂!wepoke美元局稳,wEpOke原来真的有挂,细节揭秘(有挂规律);支持2-1...
德州之星插件!德州辅助软件开发... 德州之星插件!德州辅助软件开发定制,云扑克德州本来是有挂(详细辅助挂教程)1、每一步都需要思考,不同...
wpk透视辅助工具!wpk数据... wpk透视辅助工具!wpk数据透视(WPk)一贯真的有挂-详细辅助挂教程;1、点击下载安装,wpk插...