Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Thumbnail erstellung und Bilder verkleinern (https://www.delphipraxis.net/105189-thumbnail-erstellung-und-bilder-verkleinern.html)

Sam Razr 17. Dez 2007 19:07


Thumbnail erstellung und Bilder verkleinern
 
Hi,

ich muss jetzt leider mal hier nachfrgen.
Bin noch ziemlicher Noob in Delphi, abelerne doch gerne.

Also, folgendes Programm hab ich mir vorgenommen:
  • Erstellen eines Ordners mit spez. Namen(klappt)
  • Erstllen einer Infodatei aus Teilen des Namens(Klappt)
  • laden der (jpeg,jpg) Bilder eines Ordners
  • verkleinern der Bilder auf bestimmtes Format
  • erstllen eines Thumbnailordners(klappt)
  • erstellen von thumbnails aus den vorher verkleinerten Bildern in den ordner
  • Erstllen einer Meldung wenn alles fertig ist

Ich weiss das ist jetzt viel, aber ich benötige das für meine Website. Da hab ich in eine Gallery prgrammiert die all diese Funktionen verwendet. Ist auch recht komfortabel dann, alles vollautomtisch.

Gibt es einen Verzeichniswahldialog? Sowas wie den Opendialog, für verzeichnisse?
Damit würde ich dann das Arbeitsverzeichnis ändern.

Ich hatte die Idee, das ganze dann über die Filelistbox zu machen.
Allerdings wird dann ja das Programm selber miterkannt. kann man einstellen, welche Files (jpg, jpeg) erkannt werden?

Das Verkleinern selbst dann über TImage? Da hab ich ehrlich gesagt noch keine Idee.

Hoffe ihr könnt mir helfen.
Ich weiss, sehr viel, aber es ist glaube ich umständlicher alles jeden tag Manuell zu machen

Sam

scrat1979 17. Dez 2007 19:25

Re: Thumbnail erstellung und Bilder verkleinern
 
Hallo!!!

Welche Delphi-Version verwendest Du? Je nach Version in einem unterschiedlichen Verzeichnis gibt es ein Package, welches ein "Verzeichnisauswahldialog" bietet. Bei mir (D2007) liegt es in {installdir}\Demos\DelphiWin32\VCLWin32\ShellContr ols.

Zum Umwandeln der Größe des Bildes verwende ich die sehr mächtigen (für den privaten Gebrauch imho kostenlosen) ImageEn-Komponenten von HiComponents. Die bieten zudem noch sehr, sehr viel mehr. Die Vollversion kostet 60 Kröten (und wäre meiner Meinung nach auch wesentlich mehr Geld wert)... Sonst mußt Du für JPG-Bilder noch eine Unit (JPEG o.ä.) einbinden um das Grafikformat zu untersützen.

Hoffe Dir für das Erste mal ein paar Denkanstöße gegeben zu haben...

SCRaT

TypusMensch 17. Dez 2007 19:33

Re: Thumbnail erstellung und Bilder verkleinern
 
Zitat:

Laden der (jpeg,jpg) Bilder eines Ordners. Ich hatte die Idee, das ganze dann über die Filelistbox zu machen. Allerdings wird dann ja das Programm selber miterkannt. kann man einstellen, welche Files (jpg, jpeg) erkannt werden?
Unter der Eigenschaft "Mask" einer Filelistbox statt *.* einfach *.jpg bzw. *.jpg;*.jpeg eingeben. Dann einfach mit einer Zählschleife durch die Einträge der FileListBox durchlaufen.

Zitat:

Gibt es einen Verzeichniswahldialog? Sowas wie den Opendialog, für verzeichnisse?
Damit würde ich dann das Arbeitsverzeichnis ändern.
TJvBrowseForFolderDialog. Enthalten in der Jedi VCL.
http://www.dsdt.info/jedi/jvcl/

Zitat:

Verkleinern der Bilder auf bestimmtes Format
Siehe unten...

Zitat:

Erstellen von thumbnails aus den vorher verkleinerten Bildern in den ordner
Gleiche Funktion; siehe unten, nur diemal mit einer noch kleineren Auflösung.

Zitat:

Erstllen einer Meldung wenn alles fertig ist.
Showmessage('Fertig...');
MessageDlg('Fertig...',mtInformation,[mbOK],0);

Funktion (behält Proportionen des Bildes bei); Quelle und Ziel sind Dateinamen, MaxBreite und MaxHoehe sind Pixelanzahl der späteren Bilder. Bitte "jpeg" mit in die uses-Anweisung aufnehmen.

Delphi-Quellcode:
procedure BildgroesseAendernJPGExt(Quelle,Ziel:TFileName; MaxBreite,MaxHoehe:integer);
var bmp:TBitmap;
    jpeg:TJpegImage;
    breite,hohe:integer;
begin
Jpeg:=TJpegImage.Create;
jpeg.LoadFromFile(Quelle);
//Seitenverhältnisgrößen berechnen
if jpeg.Width/MaxBreite < 1 then MaxBreite := jpeg.Width;
if jpeg.Height/MaxHoehe < 1 then MaxHoehe := jpeg.Height;
if jpeg.Width/MaxBreite > jpeg.Height/MaxHoehe then
  begin
  breite := round( jpeg.Width / (jpeg.Width/MaxBreite));
  hohe := round( jpeg.Height / (jpeg.Width/MaxBreite));
  end else
  begin
  breite := round( jpeg.Width / (jpeg.Height/MaxHoehe));
  hohe := round( jpeg.Height / (jpeg.Height/MaxHoehe));
  end;
//WANDLUNG
   try
   jpeg.LoadFromFile(Quelle);
    bmp:=TBitmap.Create;
      try
       bmp.width:=breite;
       bmp.height:=hohe;
       bmp.canvas.StretchDraw(Rect(0,0,bmp.width,bmp.height),jpeg);
       jpeg.assign(bmp);
      finally
       bmp.free;
      end;
     jpeg.SavetoFile(Ziel);
   finally
    jpeg.free;
   end;
end;
LG

Sam Razr 17. Dez 2007 19:36

Re: Thumbnail erstellung und Bilder verkleinern
 
Ich verwende Delphi 2007 Enterprise

Ich probier das gleich mal aus, und melde mich dann, danke!

Progman 17. Dez 2007 19:44

Re: Thumbnail erstellung und Bilder verkleinern
 
Liste der Anhänge anzeigen (Anzahl: 1)
hi, im Anhang ist ein Project, dass ich auch mal für Webgalerien gemacht habe. Schaus dir mal an, vielleicht musst du gar nicht mal allzuviel ändern ;)
Das Teil kam u.a. hier zum Einsatz.

vlees91 17. Dez 2007 19:47

Re: Thumbnail erstellung und Bilder verkleinern
 
fuer das laden der Bilder kann man so alle Bilder finden: http://dsdt.info/tipps/?id=134 (mask ist dann *.jp?g; falls das ? geht. sonst *.jpg UND *.jpeg)
Dann kann man ja alle mit oben genanntem Code verkleiner (kann ja zuerst noch mit % umgerechnet werden, sodass die proprtionen richtig bleiben) und dann speichern im thumbs ordner


btw: warum komische Komponenten extra runterladen? http://www.delphipraxis.net/internal...=164944#164944

Sam Razr 17. Dez 2007 20:11

Re: Thumbnail erstellung und Bilder verkleinern
 
Wow, danke!
Die Sache von progman sieht toll aus!
Ich pass sie mir noch an, dann zeig ich das ergebnis. Sobald ich wieder frei hab, geh ich den Code mal zum verstehen durch!

Sam


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