Szukam metody na na wyświetlenie obrazu (PNG w RGB - na kazdy kanał 16 bitów - razem 48 ) w komponencie i zapoznanie się z wartościami pixeli (wartości każdego z kanałów RGB) .
procedure TForm1.Button1Click(Sender: TObject);
var
fs:TFileStream;
png:TFPReaderPNG;
img:TFPCustomImage;
begin
fs:=TFileStream.Create('x.png',fmOpenRead);
png:=TFPReaderPNG.create;
img:=png.ImageRead(fs,nil);
writeln(img.Width,#32,img.Height);
image1.Picture.Assign(img);
fs.Free;
png.Free;
img.Free;
end;
Poprzez IMG masz dostęp do 16bitowych wartości RGB.
Widzę że taktyka szukania w googlu i używaniu TBrain jest używana tylko przeze mnie.
Przy czym nadal nie wyjaśniłeś mi kiedy twój problem występuje, nie wiem kiedy działa, kiedy nie działa, co działa i co nie działa. Twierdzisz że pewne obrazy powodują że cały imidż jest czarny - pytam więc czy jest tak samo pod 1.0 i 1.1 . Pewnie w kodzie dekodującym piksele jest jakiś mały bug który się czasami ujawnia.
Może faktycznie użyć by jakiejś zewnętrznej biblioteki. Może libpng?
Można, ale wydaje mi się że fcl-image powinno dać radę po ew. fixie.
Wyświetlić obraz to już teraz dałbym radę konwertując obraz do bitmapy pozostaje tylko odczyt pikseli.
Przecież dałem ci wyświetlanie poprzez LoadFromFile
który działa na PNG, jaki masz z tym problem?!
Wyjaśnij CO JEST OK, A CO NIE. Bo póki co to najpierw pierniczysz że działa potem że nie. Oczekuję dokładnego wyjaśnienia co było nie tak na 1.0 i co się zmieniło po przejściu na 1.1 . Wytłumacz co już jest zrobione i nie zawracaj mi tym głowy tylko powiedz co jeszcze chcesz wiedzieć. Pierniczysz masę rzeczy w których nikt już rozeznania nie ma...
Użyłbym libpng tylko nie widziałem żeby było dostępne na lazarusa.
Ot brakuje mu bibliotek do png na lazarusa... Eh, google too hard.