Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Image-Resize mit IGPI+ (Mitov) (https://www.delphipraxis.net/208593-image-resize-mit-igpi-mitov.html)

MartinK 22. Aug 2021 19:41

Image-Resize mit IGPI+ (Mitov)
 
Hallo
ich bin auf der Suche nach Infos (Sourcecode?) wie man mit der Unit IGDIPlus Bilder incl. evtl enthaltener EXIF Daten "Re-Sizen" (verkleinern) kann.

Nach meiner Suche im WWW bin ich inzwischen soweit das man mit IGPImage mit dem TIGPEncoderValue(NewWidth) hier "etwas machen können sollte"... ich stehe aber leider auf dem Schlauch wie das laufen könnte

Delphi-Quellcode:
var
  IGDPImage: IGPImage;
  NewWidthEV,NewHeightEV: TIGPEncoderValue;
  ImgWidth,ImgHeight: UInt32;
  ResizedWidth : Integer;

begin
  ResizedWidth := 1920;
  IGDPImage := TIGPImage.Create('C:AnEXIF_JPG.jpg');
  NewWidthEV := TIGPEncoderValue(NewWidth);
  EncoderTransformValue := Ord(NewWidthEV);
  EncoderParameters.Parameter[0].Value := @EncoderTransformValue;
  ImgWidth := ResizedWidth;
  PPropOItem.Value := @ImgWidth;   // => Exception
  IGDPImage.SetPropertyItem(PPropOItem^);

//.......
jegliche Rückmeldung ist "very welcome"

vG Martin

venice2 22. Aug 2021 20:57

AW: Image-Resize mit IGPI+ (Mitov)
 
Extrahiere die EXIF Daten vor dem ändern der Größe und füge sie nach der Änderung wieder ein.
https://www.delphipraxis.net/177255-...bertragen.html

Benmik 22. Aug 2021 21:32

AW: Image-Resize mit IGPI+ (Mitov)
 
Bist du auf GdiPlus festgelegt oder kommt auch anderes in Frage?

Man muss wissen, GdiPlus ist ja Microsoft, und die gehören (wie z.B. Adobe) zu jenen, die glauben, es sich leisten zu können, alle Regeln mit Füßen treten zu können. Das gilt bei GdiPlus ganz besonders für die EXIF-Daten, die von MS regelrecht durch den Fleischwolf gedreht werden.

Ich habe mittlerweile eine eigene EXIF-Unit, die neben EXIF noch so einiges mehr macht; aber davor hatte ich eine Lösung mit FreeImage, wovon ich noch einen Codeschnipsel rumliegen habe. Du wirst ja vermutlich nach dem Verkleinern auch noch schärfen und das alte Dateidatum wiederherstellen wollen, das ist da auch mit drin.

MartinK 23. Aug 2021 09:55

AW: Image-Resize mit IGPI+ (Mitov)
 
Ich bin generell nicht auf GDIPlus/IGPI+ festgelegt. Das wäre nur mein favorisierter Ansatz gewesen da ich das ohnehin benötige um Bilder bei denen eine Rotation vorliegt, die im EXIF ja definiert, ist korrekt zu bearbeiten.

Was meine echten/minimalen Anforderungen sind
- "Etwas das ich bei mir in den Sourcecode einfügen kann"
(keine dll., extrenes Programm das ich aufrufe etc)
- Aufgabe:
1) Lese ein vorhandenes Bild und checke die Auflösung
2) Ist die Bildbreite (Width) größer als eine per Functions-Parameter übergebene "Maximalbreite"
-> Bild entsprechend mit Höhen/Breitenverhältnis runtersaklieren.
(ich erwarte kein Photoshop-Like down-sizing qualität)
3) "Überschreiben" des originalbildes mit dem ge-downsizten Bild,
mit Übernahme der wichtigsten EXIF Infos

vG M

Delphi.Narium 23. Aug 2021 12:25

AW: Image-Resize mit IGPI+ (Mitov)
 
Guck Dir bitte mal ImageEn an. Das ist extrem vielseitig und leistungsfähig (aber nicht umsonst). Es werden keine weiteren Extras benötigt.

TiGü 23. Aug 2021 12:55

AW: Image-Resize mit IGPI+ (Mitov)
 
Du könntest auch die Windows Image Components (WIC) benutzen.

Skalieren:
https://stackoverflow.com/a/58113571
Beiträge 5 und 6:
https://www.delphipraxis.net/183061-...che-dinge.html

Ausgeprägter Support für EXIF:
https://docs.microsoft.com/en-us/win...about-metadata

Klaus01 23. Aug 2021 13:26

AW: Image-Resize mit IGPI+ (Mitov)
 
.. oder image32

die ist recht schnell und nimmt auch, so weit ich weiß, die exif Daten mit.

Grüße
Klaus

MartinK 25. Aug 2021 20:00

AW: Image-Resize mit IGPI+ (Mitov)
 
Ich habe jetzt zuerst mal "Image32" getestet.
Was für eine Vielzahl an Optionen für Bildbearbeitung. Wahnsinn!
+ "Resize" und "Sharpen" funktionieren gut und superflüssig
- Mit den EXIF-Infos bin ich noch nicht weiter. Ich denke es gibt hier keine Option innerhalb dieser Unit
- "Compress" kann sie denke ich leider auch nicht

----------
Den Vorschlag mit WIC werde ich mir ebenso nochmal ansehen und berichten
----------
ImageEn ist für mich etwas too much. 300..400€ nur für die Lizenz kann/will ich mir nicht leisten da ich das nur als Hobby betreibe
----------


Vielen Dank schonmal für die vielen Vorschläge!

vG Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.

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