From: Gautier de M. <gd...@ho...> - 2014-10-12 07:41:42
|
Hello everybody, The following code causes some trouble to me. Perhaps someone has an idea what is wrong. bmp.Create_Bitmap( Width => bitmap.width, Height => bitmap.height, Planes => 1, Bits_Per_Pixel => 24, Bits => bitmap.data(0)'Address ); bitmap.data is of type p_Byte_Array defined below. type Byte is mod 2**8; type Byte_Array is array(Integer range <>) of aliased Byte; type p_Byte_Array is access Byte_Array; Problem is: the call to Create_Bitmap seems to create an empty bitmap into variable bmp.Any clue ? If I set bmp with bmp.Load_Bitmap_From_File("screenshot.bmp");, the bitmap is displayed correctly. bitmap.width, bitmap.height and bitmap.data are correct, I can display them with: procedure Slow_display is i: Integer:= 0; begin for y in reverse 1..bitmap.height loop for x in 1..bitmap.width loop on.Drawing_Canvas.Point(x-1+coords.p1.x, y-1+coords.p1.y, Color_Type(bitmap.data(i+2))+ Color_Type(bitmap.data(i+1))*256+ Color_Type(bitmap.data(i ))*65536 ) ; i:= i + 3; end loop; while i mod 4 > 0 loop -- padding i:= i + 1; end loop; end loop; end Slow_display; TIAGautier |