#c# #windows-phone-7 #windows-phone-7.1 #getpixel #lockbits
#c# #windows-phone-7 #windows-phone-7.1 #getpixel #блокировки
Вопрос:
ОБНОВЛЕНО: Осматривался и пытался выяснить, какая альтернатива существует для Windows phone 7.1 для BitmapData. Я прокомментировал рассматриваемый код. Я знаю о блокировках и что это быстро по сравнению с получением установленных пикселей и так далее. Насколько я понимаю, BitmapData блокирует изображение в памяти, готовое к манипулированию. BmpData.Scan0 действует как указатель на память.
Если бы я должен был сделать это без BitmapData, скажите Get.Pixel и сопоставьте его с памятью. и манипулировать некоторыми данными изображения с помощью Set.Pixel?
P.S: Что касается скорости обработки; Я не собираюсь менять много пикселей.
public int Edit(Bitmap BmpIn, byte[] BIn, byte BitsPerByte)
{
int LengthBytes = 1 31 / BitsPerByte;
int TextLength = 1 (8 * BIn.Length - 1) / BitsPerByte;
//BitmapData BmpData = BmpIn.LockBits(new Rectangle(0, 0, BmpIn.Width, BmpIn.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
RGB = new byte[2 LengthBytes TextLength];
//Marshal.Copy(BmpData.Scan0, RGB, 0, RGB.Length);
InsertBitsPerByte(BitsPerByte);
SetMasks(BitsPerByte);
InsertLength(LengthBytes, TextLength, BitsPerByte);
InsertBytes(BIn, BitsPerByte);
//Marshal.Copy(RGB, 0, BmpData.Scan0, RGB.Length);
BmpIn.UnlockBits(BmpData);
return TextLength;
}
Любая помощь приветствуется.
Спасибо
Комментарии:
1. Неясно, что вы пытаетесь сделать: клонировать изображение, манипулировать изображением? Оба?
2. Да, я пытаюсь клонировать, а затем манипулировать изображением. Я ввел еще немного кода, если он немного прояснит ситуацию.
Ответ №1:
Взгляните на WriteableBitmapEx. Это позволит вам выполнять манипуляции с пикселями внутри изображения.
Комментарии:
1. Можете ли вы объяснить немного подробнее, как это может быть полезно в приведенном выше сценарии? Я посмотрел на leadtools и некоторые другие. Что-нибудь похожее на BitmapData или Bitlocks?