Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Eigenschaften von Bildern ausgeben (https://www.delphipraxis.net/105245-eigenschaften-von-bildern-ausgeben.html)

BM_90 18. Dez 2007 16:16


Eigenschaften von Bildern ausgeben
 
Moin!
Ich hab folgendes Problem: Mit meinem Programm kann ich mehrere Bilder öffnen, die denn neben einander angeordnet werden. Ich möchte die Bilder gerne per Mausklick "auswählen", also markieren können. Von dem markierten Bild sollen dann die Eigenschaften (Auflösung, Name, Pfad, Größe,...) in TLabels angezeigt werden. Leider habe ich aber keinen Schimmer, wie das geht.

Vielen Dank schonmal im Vorraus...

vlees91 18. Dez 2007 16:35

Re: Eigenschaften von Bildern ausgeben
 
Wie zeigst du die Bilder an?
mehrere TImage Komponenten?

BM_90 18. Dez 2007 16:51

Re: Eigenschaften von Bildern ausgeben
 
Ja genau, ich lasse für jedes Bild eine TImage Komponente erstellen...

vlees91 18. Dez 2007 16:56

Re: Eigenschaften von Bildern ausgeben
 
Dann kannst du ja ein Array machen pro geladenes Bild mit darin Dateiname und so und dann wenn man auf Image1 klickt die Daten auf Platz 1 im Array, bei image2 die 2. usw

BM_90 18. Dez 2007 17:00

Re: Eigenschaften von Bildern ausgeben
 
Super Idee, davon hab ich sogar in Info schonmal was gehört, aber da ist nicht genug hängen geblieben, dass ich jetz wüsste, wie ich das mache...

vlees91 18. Dez 2007 17:05

Re: Eigenschaften von Bildern ausgeben
 
Delphi-Quellcode:
type
  TBildInfos = record; //was ist eigentlich der unterschied zwischen diesem und packed?
    Name, Ort: string;
    Abmessungen: TPoint; //missbrauch davon machen, dass man so zwei integers in einem hat.
  end;
...
var
  Bilder: array of TBildInfos;
begin
  //beim bilder laden direkt das array ausbreiten und die Infos abspeichern
end;

DeddyH 18. Dez 2007 17:12

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von vlees91
Delphi-Quellcode:
TBildInfos = record; //was ist eigentlich der unterschied zwischen diesem und packed?

Zitat:

Zitat von Delphi-Hilfe
Per Voreinstellung sind die Werte in einem strukturierten Typ in einem Word- oder Double-Word-Raster ausgerichtet, um den Zugriff zu beschleunigen. Wenn Sie einen strukturierten Typ deklarieren, können Sie das reservierte Wort packed einfügen, um die Daten in komprimierter Form zu speichern:
Delphi-Quellcode:
type TNumbers = packed array[1..100] of Real;
Die Verwendung von packed verlangsamt den Zugriff auf die Daten. Im Falle eines Zeichen-Arrays beeinflusst packed auch die Kompatibilität der Typen. Weitere Informationen finden Sie unter Speicherverwaltung.


BM_90 18. Dez 2007 17:33

Re: Eigenschaften von Bildern ausgeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von DeddyH
Zitat:

Zitat von vlees91
Delphi-Quellcode:
TBildInfos = record; //was ist eigentlich der unterschied zwischen diesem und packed?

Zitat:

Zitat von Delphi-Hilfe
Per Voreinstellung sind die Werte in einem strukturierten Typ in einem Word- oder Double-Word-Raster ausgerichtet, um den Zugriff zu beschleunigen. Wenn Sie einen strukturierten Typ deklarieren, können Sie das reservierte Wort packed einfügen, um die Daten in komprimierter Form zu speichern:
Delphi-Quellcode:
type TNumbers = packed array[1..100] of Real;
Die Verwendung von packed verlangsamt den Zugriff auf die Daten. Im Falle eines Zeichen-Arrays beeinflusst packed auch die Kompatibilität der Typen. Weitere Informationen finden Sie unter Speicherverwaltung.


Haut irgendwie nicht richtig hin...

DeddyH 18. Dez 2007 17:34

Re: Eigenschaften von Bildern ausgeben
 
Wenn Du hinter dem Wörtchen record mal das Semikolon weglässt...

BM_90 18. Dez 2007 17:37

Re: Eigenschaften von Bildern ausgeben
 
Nix. Sagt immernoch das Selbe...

DeddyH 18. Dez 2007 17:39

Re: Eigenschaften von Bildern ausgeben
 
Nicht in die Eigenschaften der Klasse schreiben, sondern vorher unter type definieren und eine Variable dieses Typs in die Klasse :!:

scrat1979 18. Dez 2007 18:24

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von BM_90
Moin!
Ich hab folgendes Problem: Mit meinem Programm kann ich mehrere Bilder öffnen, die denn neben einander angeordnet werden. Ich möchte die Bilder gerne per Mausklick "auswählen", also markieren können. Von dem markierten Bild sollen dann die Eigenschaften (Auflösung, Name, Pfad, Größe,...) in TLabels angezeigt werden. Leider habe ich aber keinen Schimmer, wie das geht.

Vielen Dank schonmal im Vorraus...

Wie ich soooo oft hier im Forum schreibe: Schau Dir die ImageEn-Komponenten von HiComponents an. Die können das und andere mächtige Bildbearbeitungsfunktionen (z.B. auch Thumbnailanzeige, -generierung, EXIF-Datenanzeige etc.)... Kostenlos für den privaten Gebrauch, 60€ (imho) für den kommerziellen Einsatz. Und nein, ich bekommen keine Provision von denen :-)

Schau Sie Dir einfach mal an, damit kommst Du mit Sicherheit sehr schnell und einfach an das Ziel. Massig(!) Beispielprogramme mit Source sind dabei...

Schönen Abend noch...

BM_90 19. Dez 2007 12:53

Re: Eigenschaften von Bildern ausgeben
 
Das mit der Komponennte hat auch nicht funktioniert...
Außer, dass mein Delphi jetzt bei jedem Start meckert, es könne irgendwelche Module nicht laden...

mimi 20. Dez 2007 15:26

Re: Eigenschaften von Bildern ausgeben
 
Wenn alle Bilder in einer TImage liegen musst du nur noch einfach,
allen Image Komponenten einem gemeinsamen onKlick event geben. das wars
dort kansnt du viele Eigenschaften Abfragen. wie halt auflösung und breite und soweiter.

Blackheart 20. Dez 2007 15:57

Re: Eigenschaften von Bildern ausgeben
 
http://www.delphi-forum.de/viewtopic...187&highlight=

BM_90 6. Feb 2008 20:14

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von mimi
Wenn alle Bilder in einer TImage liegen musst du nur noch einfach,
allen Image Komponenten einem gemeinsamen onKlick event geben. das wars
dort kansnt du viele Eigenschaften Abfragen. wie halt auflösung und breite und soweiter.

Ich will ja nicht die Auflösung des Bildes in dem TImage ändern. Das betreffe ja dann nur die Darstellung. Ich will aber die Auflösung der Originaldatei ändern...

mimi 7. Feb 2008 16:44

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Ich will aber die Auflösung der Originaldatei ändern
Was meinst du damit ?
Wenn du ein Bild in das Image lädst kannst du über die Eigenschaften Wi... und Hei... die Größe des Bildes erfahren...
oder meinst du ob es 32 oder 16 BIT ist ? das geht mit PixeFormat.... meine ich.

BM_90 7. Feb 2008 17:08

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von mimi
Zitat:

Ich will aber die Auflösung der Originaldatei ändern
Was meinst du damit ?
Wenn du ein Bild in das Image lädst kannst du über die Eigenschaften Wi... und Hei... die Größe des Bildes erfahren...
oder meinst du ob es 32 oder 16 BIT ist ? das geht mit PixeFormat.... meine ich.

Aaaalso: Nehmen wir mal an, ich habe ein Bild im Format 1920*1200. Ich öffne das Bild in meinem Programm und will dann die Auflösung so ändern, sodass ich, wenn ich das Bild speichere, eine Datei hab, deren Auflösung zum Beispiel 300*500 ist.
Wenn ich das mit Higth und Width im TImage ändere ändert sich nur die Größe der Darstellung, aber wenn ich es speichere, hat mein Bild immernoch die Originalauflösung.

Muetze1 7. Feb 2008 17:10

Re: Eigenschaften von Bildern ausgeben
 
Na dann ändere doch einfach die Auflösung des Bildes und nicht der Komponente, also Delphi-Referenz durchsuchenTImage.Picture.Width und entsprechend Delphi-Referenz durchsuchenTImage.Picture.Height ...

BM_90 7. Feb 2008 17:31

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von Muetze1
Na dann ändere doch einfach die Auflösung des Bildes und nicht der Komponente, also Delphi-Referenz durchsuchenTImage.Picture.Width und entsprechend Delphi-Referenz durchsuchenTImage.Picture.Height ...

Das Habe ich versucht, hatt aber nicht funktioniert...

mimi 7. Feb 2008 17:53

Re: Eigenschaften von Bildern ausgeben
 
Es gibt noch eine Möglichkeit. Drücke mal bei Str.... STRG+Leertaste ob du da was findest...
Ich weiß nie genau wie das geschrieben wird.
Str...Blt

BM_90 7. Feb 2008 17:58

Re: Eigenschaften von Bildern ausgeben
 
Ich hab zur zeit kein Delphi drauf... Musste meinen PC neu aufspielen.

mimi 7. Feb 2008 18:02

Re: Eigenschaften von Bildern ausgeben
 
Such mal nach StretchBlt. Das dürfte für dich genau das richtige sein.

BM_90 7. Feb 2008 18:06

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von mimi
Such mal nach StretchBlt. Das dürfte für dich genau das richtige sein.

Danke!

BM_90 20. Feb 2008 12:31

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

Zitat von Muetze1
Na dann ändere doch einfach die Auflösung des Bildes und nicht der Komponente, also Delphi-Referenz durchsuchenTImage.Picture.Width und entsprechend Delphi-Referenz durchsuchenTImage.Picture.Height ...

Ich hab das nochmal ausprobiert... Hatte einen Fehler drin.
Habe jetzt nur das Problem, dass man die Größe von JPGs nicht ändern kann. Also lasse ich per ButtonClick das Bild als BMP soeichern un wieder einlesen. Das funktioniert soweit. Nur habe ich jetz das problem, dass nachdem ich die Größe verändert habe, ich nur noch ein leeres Bild habe...

Mein Code sieht so aus:
Delphi-Quellcode:
procedure ... ;
begin
image1.picture.graphic.savetofile('C:\...\tmp.bmp');
image1.picture.graphic.loadfromfile('C:\..\tmp.bmp');
image1.picture.bitmap.height:=strtoint(edit3.text);
image1.picture.bitmap.width:=strtoint(edit4.text);
image1.proportional:=true;
image1.stretch:=true;
image1.picture.graphic.savetofile('C:\...\tmp.bmp');
end;
Weiß jemand warum das nicht funktioniert??

mimi 20. Feb 2008 14:33

Re: Eigenschaften von Bildern ausgeben
 
Zitat:

image1.proportional:=true;
image1.stretch:=true;
Das solltest du als erstes setzten. Aber warum das Bild Leer ist, weiß ich auch nicht.

Warum machst du das nicht mit "StretchBlt" ?

Einfach ein TBitMap Intern erstellen mit der gewünschten Größe bild rein Kopieren. Dabei wird es dann vergrößert Automatisch.

die Jpeg Unit hasst du aber ein gebunden oder ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr.

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