Мне нужно обработать изображение, которое предоставляется программой C# как объект Bitmap
. Обработка выполняется в ++ DLL C, которая получает дескриптор объекта GDI (HBITMAP
), созданный из растрового изображения, с помощьюИзменение битовой карты C# во внешней DLL
Bitmap.GetHbitmap();
Аргумент проходящий между C# и библиотеки DLL работает отлично, и объект GDI имеет ожидаемые характеристики. Я могу читать пиксели изображения в DLL.
В любом случае, когда я пытаюсь изменить изображение через DLL, это изменение не отражается в приложении C#, как если бы изображение было только для чтения. Я подозреваю, что необходимо выполнить некоторую операцию для преобразования обратно с объекта GDI в экземпляр Bitmap
, но я ничего не вижу в .NET API.
Мне известно о механизме LockBits/UnlockBits
, который я мог бы использовать, если ничего не работает, но мое текущее требование - передать только ручку.
Подсказка?
Возможно, вы ищете [** 'Image.FromHbitmap()' **] (https://msdn.microsoft.com/en-us/library/k061we7x (v = vs.110) .aspx)? –
@VisualVincent Yesss! Это то, что мне нужно, это работает. Вы можете ввести это как ответ, я думаю. –
Рад это слышать! –