Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi JPG der Höhe 1 anzeigen? (https://www.delphipraxis.net/151080-jpg-der-hoehe-1-anzeigen.html)

Mattze 5. Mai 2010 10:07


JPG der Höhe 1 anzeigen?
 
Hallo,

ich habe erst jetzt, nach viiielen Jahren mit Delphi und JPGs erschreckend bemerkt, dass Delphis JPEG.dcu keine JPGs mit der Höhe 1 Pixel anzeigen kann.
("Bereichsüberschreitung bei Zeilenindex")
Nun suche ich schon eine ganze Weile nach einer Lösung, konnte aber bisher da nichts finden.

Kennt jemand eine Lösung?

(Aufgefallen ist es mir bei der Datei divider.jpg, die oft bei Seiten im Internet eingebaut wird!)

Gruß
Mattze

blackfin 5. Mai 2010 11:03

Re: JPG der Höhe 1 anzeigen?
 
Ich nehme an, du willst das 1px-JPeg in ein TImage laden, richtig?

Wenn es dir nichts ausmacht, eine DLL einzubinden, kannst du dafür die Graphics32 Library nehmen, mit der Erweiterung pqGR32_JPEG (runterscrollen, es ist dort in der Third Party Liste)

Das letztere ist ein Wrapper für die Intel JPEG library (ijl15.dll, ist bei pqGR32_JPEG dabei), und um einiges flotter als das Zeug in der JPEG.dcu von Delphi.

In ein TImage könntest du dann das 1px JPEg folgendermaßen bringen (getestet, funktioniert bei mir):

Delphi-Quellcode:
uses
....GR32,pqGR32_JPEG ;



procedure LoadJpegToImage();
var
  FBMP32: TBitmap32;
begin
  FBMP32 := TBitmap32.Create() ; // "Hilfs-Bitmap32" erzeugen
  LoadJPEGFromFile(FBMP32,ApplicationPath+'1pxtest.jpg'); // 1 Pixel JPEG laden
  Image1.Picture.Bitmap.Assign(FBMP32); // Der TImage Komponente zuweisen
  FreeAndNil(FBMP32); // Hilfs-BMP wieder freigeben
end;
Hinweis:
In der pqGR32_JPEG.pas habe ich noch als "Schnellschuss" die EFOpenError durch Exception ersetzt, damit sichs kompilieren lässt :D
Du kannst das natürlich auch "sauber" anpassen :)

grüssle,

Fin

Namenloser 5. Mai 2010 12:32

Re: JPG der Höhe 1 anzeigen?
 
[OT]
Wobei man 1 Pixel hohe Bilder sowieso nicht als JPEG speichern sollte, weil JPEG auf einem 8*8 Pixel Raster aufbaut. PNG würde hier vermutlich eine bessere Kompression bei höherer Qualität liefern. Aber das nur am Rande...
[/OT]

blackfin 5. Mai 2010 12:37

Re: JPG der Höhe 1 anzeigen?
 
Da hast du schon recht, das hilft aber wohl leider nichts, wenn man z.B. externe Grafiken laden muss, die ein anderer verpfuscht hat :)

Mattze 5. Mai 2010 14:13

Re: JPG der Höhe 1 anzeigen?
 
Hallo und vielen Dank!

Ich noch gar nicht auf die Idee gekommen eine 1 Pixel hohe jpg zu basteln. Aber andere eben leider schon...
Und die will man doch auch ansehen!
(Ich habe doch ein Beispiel für so ein verkorkstes Ding gegeben!)

Also, blackfin hat da völlig recht!

Inzwischen habe ich übrigen s etwas in Borlands (?) QualityCentral gefunden:
http://qc.embarcadero.com/wc/qcmain.aspx?d=3441
(Für jemanden, der die JPEG.Pas hat.)

Ich versuche momentan die neu zu übersetzen. Aber das funktioniert noch nicht so richtig!

Gruß
Mattze


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz