[FreeImage] Źle odczytuje pikesele
Ostatnio zmodyfikowano 2017-09-11 19:57
fokusx Temat założony przez niniejszego użytkownika |
[FreeImage] Źle odczytuje pikesele » 2017-09-11 18:46:35 #include <iostream>
#include <FreeImage.h> using namespace std;
int main( int argc, char * argv[] ) { FIBITMAP * image; FREE_IMAGE_FORMAT fif = FreeImage_GetFileType( "test.jpg" ); image = FreeImage_Load( fif, "test.jpg" ); if( !image ) { cout << "I could not open " << endl << endl; system( "pause" ); return( 1 ); } unsigned width = FreeImage_GetWidth( image ); unsigned height = FreeImage_GetHeight( image ); BYTE * Data = FreeImage_GetScanLine( image, 0 ); for( int i = 0; i < 10; ++i ) cout <<( int ) Data[ i ] << ", " << "\t"; cout << endl; system( "pause" ); return( 0 ); }
Pokazuje mi inne wartości niż w gimpie. Sprawdzałem bpp: 24, typ: rgb, rozmiar mapy się zgadza. Wartości pikseli są podobne ale nie identyczne jak w gimpie. Co robię źle? |
|
Luq |
» 2017-09-11 19:38:43 Może być kilka powodów, przez które źle odczytujesz dane bitmapy 1. Każdy wiersz bitmapy jest wyrównany do całkowitej wielokrotności 4 bajtów. 2. Wiersze są zapisane od dołu do góry.
Ponadto piksele mogą być zapisane w formacie BGR a nie RGB.
|
|
golibroda13 |
» 2017-09-11 19:57:33 Weź plik z 255 liniami, które mają kolor R:0-255, G:0-0, B:0-0 i zobacz co wyjdzie. |
|
« 1 » |