Pawan Gupta Lucknow Ответов: 1

Небезопасный код дает ошибку-"небезопасный код может появиться только при компиляции с /unsafe"


Я пытаюсь реализовать фильтр инвертирования изображений в C#.
Для этого я использую указатель в C#, но в строке № 20 возникает ошибка "небезопасный код может появиться только при компиляции с /unsafe".

Поэтому я не могу устранить эту ошибку.

Пожалуйста, помогите мне.
Заранее спасибо.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;

namespace DIP
{
    class BitmapFilter
    {
        public static bool Invert(Bitmap b)
        {
            BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

            int stride = bmData.Stride;
            System.IntPtr Scan0 = bmData.Scan0;

            unsafe
            {
                byte* p = (byte*)(void*)Scan0;

                int nOffset = stride - b.Width * 3;
                int nWidth = b.Width * 3;

                for (int y = 0; y < b.Height; ++y)
                {
                    for (int x = 0; x < nWidth; ++x)
                    {
                        p[0] = (byte)(1000 + p[0]);
                        ++p;
                    }
                    p += nOffset;
                }
            }
            b.UnlockBits(bmData);
            return true;
        }
    }
}

1 Ответов

Рейтинг:
9

lw@zi

Вы должны установить флажок "Разрешить небезопасный код" в свойствах проекта.