AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi JPG der Höhe 1 anzeigen?
Thema durchsuchen
Ansicht
Themen-Optionen

JPG der Höhe 1 anzeigen?

Ein Thema von Mattze · begonnen am 5. Mai 2010 · letzter Beitrag vom 5. Mai 2010
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

JPG der Höhe 1 anzeigen?

  Alt 5. Mai 2010, 11:07
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
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#2

Re: JPG der Höhe 1 anzeigen?

  Alt 5. Mai 2010, 12:03
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
Du kannst das natürlich auch "sauber" anpassen

grüssle,

Fin
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: JPG der Höhe 1 anzeigen?

  Alt 5. Mai 2010, 13:32
[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]
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#4

Re: JPG der Höhe 1 anzeigen?

  Alt 5. Mai 2010, 13:37
Da hast du schon recht, das hilft aber wohl leider nichts, wenn man z.B. externe Grafiken laden muss, die ein anderer verpfuscht hat
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#5

Re: JPG der Höhe 1 anzeigen?

  Alt 5. Mai 2010, 15:13
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 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