Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TImage - große Bilder (https://www.delphipraxis.net/151395-timage-grosse-bilder.html)

rokli 16. Mai 2010 11:52


TImage - große Bilder
 
Moin!

Bin lange nicht mehr hier gewesen ... schön, Euch zusehen! :drunken:

Zur Zeit beschäftige ich mit mit der Einbindung von Bildern in ein Delphi 2009 Projekt. Dabei habe ich im Prinzip nur die Anzeige von Bilder über ein TImage vor. Es sollen .JPG, .BMP und andere Bildtypen (Fotos) angezeigt werden.

Dazu lade ich das Bild bisher mit:

��imgMain : TImage

��imgMain.Picture.LoadFromFile(strPic);

Leider bekomme ich dabei Zugriffsverletzung, wenn das Bild "ein bischen größer" wird; so ca. ab 1 MB knallt es schon.

Kann mir jemand sagen, ob TImage eine Größenbeschränkung hat?
Weiss jemand, wie man größere Bilder anzeigen kann? Dabei soll es auch weit über die Bildschirmgrenzen hinaus gehen - diese Bilder sollen dann gescrollt werden, so dass man sich die Bereiche, die ausserhalb der Bildschirmgrenzen liegen, anzeigen lassen.

Vielen Danke für Eure Mühe!

Gruß
Rolf

BUG 16. Mai 2010 12:21

Re: TImage - große Bilder
 
Zitat:

Zitat von rokli
Weiss jemand, wie man größere Bilder anzeigen kann? Dabei soll es auch weit über die Bildschirmgrenzen hinaus gehen - diese Bilder sollen dann gescrollt werden, so dass man sich die Bereiche, die ausserhalb der Bildschirmgrenzen liegen, anzeigen lassen.

Auch wenn es eigentlich ein Thread -> eine Frage heißt: das TImage in eine TScrollBox packen und autosize des Images auf true setzten.

rokli 17. Mai 2010 07:49

Re: TImage - große Bilder
 
Hi BUG,

vielen Dank für Deine Antwort - aber das ist leider nicht das Problem. Das ist soweit klar. Aber: Beim Laden der Datei bekomme ich einen Zugriffsfehler; und zwar immer dann, wenn, die Datei größer wird. Bilder, die im unteren Kilobyte Bereich sind, laufen tadellos. Aber Bilder, die größer - na sagen wir ab 1 MB - sind, die verursachen einen Speicherzugriffsfehler.

Hat jemand eine Idee dazu?

TKS
Rolf

blackfin 17. Mai 2010 09:57

Re: TImage - große Bilder
 
kannst du die Lade-Funktion und ein entsprechendes Testbild, das "knallt", mal anhängen?

rokli 17. Mai 2010 10:42

Re: TImage - große Bilder
 
Liste der Anhänge anzeigen (Anzahl: 1)
aber klar ...

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  strFile : STRING;
begin
  if OpenDialog1.Execute then begin
    strFile  := OpenDialog1.FileName;
    Image1.Picture.LoadFromFile(strFile);
  end;
end;
Dieses Foto ist laut Win-Explorer 2.541 KB - und lässt sich so nicht öffenen. Zwischenzeitlich habe ich das auf 2 unterschiedlichen Systemen (Win 7 mit Delphi 2009 und Win XP, ebenfalls Delphi 2009) getestet. Beide Rechner verhalten sich identisch...

Gruß
Rolf

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]

blackfin 17. Mai 2010 11:07

Re: TImage - große Bilder
 
So, habs gerade getestet:

Der Grund, dass du eine Zugriffsverletzung bekommst, ist nicht die Bildgrösse, sondern der Farbraum des Bildes.
Das Bild hat nämlich einen (Canon-spezifischen?) CMYK-Farbraum, und damit kann TImage (bzw. die JPEG.dcu) nicht umgehen.
Wenn du das Bild vorher in RGB konvertierst, geht es.

Edit:
Ich glaube, die ImageEN Komponenten können mit CMYK umgehen und damit auch noch viel (Un)fug anstellen :)

Edit II:
Es gibt auch im EDN eine "Enhanced JPEG Implementation" als Ersatz für die bestehende JPEG.dcu, die auch mit CMYK umgehen kann:
http://cc.embarcadero.com/item/19723

rokli 17. Mai 2010 11:30

Re: TImage - große Bilder
 
Du bist der König! :thumb:

Vielen Dank, ich werde mir Deine Links heute abend mal genauer ansehen!

Gruß
Rolf

rokli 18. Mai 2010 07:07

Re: TImage - große Bilder
 
@blackfin:

Habe mir gestern abend die ImageEn Komponenten angesehen ... die können schon was!

Und das Problem mit meinen Bildern ist auch damit gelöst. Hat allerdings einige neue Probleme aufgeworfen :-) Wenn ich ein Bild mit der Komponente anzeige, kann ich keine Funktionstaste mehr auslesen. Da bleibt noch einiges an Arbeit.

Aber der Tipp war gold wert!!

Gruß
Rolf

blackfin 18. Mai 2010 11:52

Re: TImage - große Bilder
 
Freut mich, dass der Fehler gelöst werden konnte :)

Zitat:

...Wenn ich ein Bild mit der Komponente anzeige, kann ich keine Funktionstaste mehr auslesen...
Das verstehe ich nun leider nicht so ganz. :gruebel:
Welche "Funktionstasten" sind jetzt gemeint und wo ist das genaue Problem?
Der Begriff "Funktionstasten" kann ja alles mögliche sein :)

grüssle,

Fin


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 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