Если в 2 словах, нужно иметь возможность на bitmap рисовать image, в произвольном месте произвольного размера. Про Graphics мне известно, но он достаточно медленный на больших изображениях, может есть чтото более быстрое? Гугление не дало ничего кроме DX, но возиться с координатами во float от 0 до 1 нет никакого желания.
Попробую через LockBits, на вскидку нашел такой код, не уверен будет ли он работать
Rectangle srcArea = new Rectangle(0, 0, srcBitmap.Width, srcBitmap.Height);
BitmapData srcData = srcBitmap.LockBits(srcArea, ImageLockMode.ReadOnly, destBitmap.PixelFormat);
Rectangle destArea = new Rectangle(25, 25, srcBitmap.Width, srcBitmap.Height);
BitmapData destData = destBitmap.LockBits(destArea, ImageLockMode.WriteOnly, destBitmap.PixelFormat);
IntPtr srcPtr = srcData.Scan0;
IntPtr destPtr = destData.Scan0;
byte[] buffer = new byte[srcData.Stride];
for (int i = 0; i < srcData.Height; ++i)
{
Marshal.Copy(srcPtr, buffer, 0, buffer.Length);
Marshal.Copy(buffer, 0, destPtr, buffer.Length);
Виталий Пухов: Может быть, и будет. Я не уверен, к чему приведёт изменение последнего байта буфера destPtr в случае ширины, не кратной 4 - не появится ли справа от скопированного участка цветная каёмка. Лучше, всё-таки, копировать столько байт, сколько надо (для формата rgb24bpp - 3*srcBitmap.Width).
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.