Hallo Zusammen
Ich lade ein grosses Tiff File nach einem Timage (640 x 480). Das klappt bestens. Ich kann das ganze Bild sehen (stretch).
Das gibt mal eine Uebersicht.
Aber eigentlich möchte das original Bild auswerten. Das heisst die Grauwerte der einzelnen Pixel lesen und in eine Byte Array schreiben.
Muss ich das in ein TLazIntfImage kopieren? Oder ev. TBitmap.RAWImage? Gibt so viele Möglichkeiten.
Gibts vieleicht irgendwo ein brauchbares Beispiel?
Tiff File auswerten
-
- Lazarusforum e. V.
- Beiträge: 208
- Registriert: Fr 11. Nov 2016, 14:09
- OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Tiff File auswerten
Good code comes from experience, experience comes from bad code.
Re: Tiff File auswerten
Also wenn du das nur einlesen und zugreifen willst, sollte es z.B. auch so gehen:
http://wiki.freepascal.org/fcl-image
Code: Alles auswählen
uses ... FPReadTiff, FPimage;
...
procedure TForm1.Button1Click(Sender: TObject);
var
Image: TFPCustomImage;
Reader: TFPCustomImageReader;
begin
Image := TFPMemoryImage.Create(0, 0);
Reader := TFPReaderTiff.Create;
Image.LoadFromFile('/home/theo/Bilder/test.tiff', Reader);
Caption := IntToStr(Image.Width) + ' ' + IntToStr(Image.Height); //Dimensionen anzeigen.
ShowMessage(IntToHex(Image.Colors[10, 20].blue, 4)); //Blauwert an Punkt 10:20 als Word, nicht Byte.
Reader.Free;
Image.Free;
end;
http://wiki.freepascal.org/fcl-image
-
- Lazarusforum e. V.
- Beiträge: 208
- Registriert: Fr 11. Nov 2016, 14:09
- OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Tiff File auswerten
Vielen Dank für die Antwort.
Ja ich meine ich muss es nur lesen können.
Wenn das klappt bin ich einen riesen Schritt weiter.
Ja ich meine ich muss es nur lesen können.
Wenn das klappt bin ich einen riesen Schritt weiter.
Good code comes from experience, experience comes from bad code.
-
- Lazarusforum e. V.
- Beiträge: 208
- Registriert: Fr 11. Nov 2016, 14:09
- OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Tiff File auswerten
Hallo Theo
Das Beispiel funktioniert. Vielen Dank nochmal.
Finde nur keine Dokumentation zu 'Image.Colors'.
Was macht denn die 4 bei 'Image.Colors[10, 20].blue, 4'?
Vier Stellen?
Wenn Image.Colors einen Integer Wert gibt, müsste
ImgValueInt1 := Image.Colors[10, 20].blue, 4;
gehen? Sieht falsch aus und geht auch nicht.
In der Doku (freepascal.org) steht zwar was von 0-65535.
Ich kriege Resultate wie FFFF oder 0202 also zweimal dasselbe Byte.
Aber egal.
Das mache ich denn mit
ImgValueInt1 := ImgValueInt1 shr 8; (ungetestet))
in Ordnung.
Oder zur Not den String zwei Stellen kürzen und nach Byte umwandeln.
Eigentlich will ich nur ein Graustufenbild einlesen. Scheinbar wird hier aber nach 16 bit 4 Kanal (RGBA?) gewandelt (eingelesen).
Kann ich das beim Einlesen nicht schon parametrieren? Ich meine so müsste ich ca den 8 Fachen Speicher brauchen, oder nicht?
Das Beispiel funktioniert. Vielen Dank nochmal.
Finde nur keine Dokumentation zu 'Image.Colors'.
Was macht denn die 4 bei 'Image.Colors[10, 20].blue, 4'?
Vier Stellen?
Wenn Image.Colors einen Integer Wert gibt, müsste
ImgValueInt1 := Image.Colors[10, 20].blue, 4;
gehen? Sieht falsch aus und geht auch nicht.
In der Doku (freepascal.org) steht zwar was von 0-65535.
Ich kriege Resultate wie FFFF oder 0202 also zweimal dasselbe Byte.
Aber egal.
Das mache ich denn mit
ImgValueInt1 := ImgValueInt1 shr 8; (ungetestet))
in Ordnung.
Oder zur Not den String zwei Stellen kürzen und nach Byte umwandeln.
Eigentlich will ich nur ein Graustufenbild einlesen. Scheinbar wird hier aber nach 16 bit 4 Kanal (RGBA?) gewandelt (eingelesen).
Kann ich das beim Einlesen nicht schon parametrieren? Ich meine so müsste ich ca den 8 Fachen Speicher brauchen, oder nicht?
Good code comes from experience, experience comes from bad code.
Re: Tiff File auswerten
Ist nun mal so.
Wenn du mit TColor besser zurecht kommst, gibt es
S.a: http://wiki.freepascal.org/Colors/de
Wenn du mit TColor besser zurecht kommst, gibt es
Code: Alles auswählen
function FPColorToTColor(const FPColor: TFPColor): TColor;
S.a: http://wiki.freepascal.org/Colors/de
-
- Lazarusforum e. V.
- Beiträge: 208
- Registriert: Fr 11. Nov 2016, 14:09
- OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Tiff File auswerten
Hallo Theo
Danke für die Geduld.
Jetzt klappt es. Die ,4 hat mich aus der Bahn geworfen. Die gehört ja nicht zu Image.Colors sondern zu IntToHex.
Kriege jetzt die Werte die ich brauche.
So kann ich weitermachen. Die grossen Bilder lass ich erstmal weg.
Danke für die Geduld.
Jetzt klappt es. Die ,4 hat mich aus der Bahn geworfen. Die gehört ja nicht zu Image.Colors sondern zu IntToHex.
Kriege jetzt die Werte die ich brauche.
So kann ich weitermachen. Die grossen Bilder lass ich erstmal weg.
Good code comes from experience, experience comes from bad code.