referencia MSDN: [1] http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx#Y1178Bitmap.LockBits confusión
Desde el enlace que dice que el primer argumento se "especifica la porción del mapa de bits para bloquear" la cual di a ser una parte más pequeña de la Bitmap (Bitmap es 500x500, mi rectángulo es (0,0,50,50)), sin embargo, el bitmapData devuelto tiene una zancada de 1500 (= 500 * 3), por lo que básicamente todos los escaneos seguirán escaneando toda la imagen horizontalmente. Sin embargo, lo que quiero es solo la parte superior izquierda 50x50 del mapa de bits.
¿Cómo funciona esto?
Gracias. ¡Eso tiene sentido! –
No hay garantía de que la zancada del mapa de bits sea igual a (ancho * bytes por píxel), por lo tanto, "var bpp = data.Stride/bitmap.Width;" es incorrecto (puede crear fácilmente un mapa de bits con una zancada diferente). Puede usar ((((bitmap.Pixelformat) >> 8) y 255) para obtener el número de bits por píxel, o (((bitmap.Pixelformat) >> 11) y 31) para los bytes por píxel. –
Además, si la zancada es importante para usted, puede suministrar su propio búfer y caminar con ImageLockMode.UserInputBuffer. –