Benutzer mit den meisten Antworten
Bilder Import AD - Vorbereiten der Bilder / Saklieren / resizen / verkleinern

Frage
-
Hallo,
ich würde gerne Profilbilder "halbautomatisch" in ein AD einpflegen.
Die Grobe Struktur steht, nur komme ich Leider bei verkleinern der Bilder nicht mehr weiter.
Die Bilder müssen gewissen Anforderungen entsprechen:
Format 1 gross: JPG 648x648 Pixel (Exchange/Lync 2013, Dateigrösse max. 64KB))
Format 2 klein: JPG/GIF 96x96 Pixel (ActiveDirectory, Dateigrösse max. 10KB)
Das Resizen war relativ einfach erledigt mit Hilfe eines schon vorhanden Skripts (https://gallery.technet.microsoft.com/scriptcenter/Resize-Image-File-f6dd4a56http://).
Nun habe ich zwar die Bilder in der richtigen Göße/Pixel jedoch sind die Bilder immer noch recht groß ( z.B. 100KB).
Ich würde jetzt gerne eine "Schleife" bauen die jene Bilder weiter herunterskaliert werden bis sie kleiner-gleich z.B. 10kb sind.
Ich vermute das ich einen logischen Fehler mache, leider finde ich nichts vergleichbares im Internet.
Zum Skalieren möchte ich gerne auf folgendes Skript zurückgreifen (https://gallery.technet.microsoft.com/scriptcenter/Resize-Image-A-PowerShell-3d26ef68). Welches auch für einzelne Dateien funktioniert, nur eben in der Schleife nicht:
gci .\01_convert_destination\ -recurse -filter *.jpg | foreach { Move-Item -Path "$_" -Destination ".\02_resize_destination\00_scale\$_" | where {$_.length -gt 10kb}}
Weiterer Ansatz:
#Get-ChildItem '.\01_convert_destination\*.jpg' | Where Length -gt 10kb | ForEach-Object {Move-Item -Path "$_" -Destination ".\02_resize_destination\00_scale\$_"}
Ich hoffe jemand kann mir einen Tipp geben bzw. weiterhelfen.
VG Melwo
Antworten
-
Nur die Auflösung (x*y Punkte) und die Kompressionsrate bestimmen die Größe der Datei in KB.
DPI ist kein fester Eigenschaftswert einer Bilddatei. Der DPI-Wert wird vom Scanner, Kamera etc einfach in den Metadaten (EXIFetc) hinterlegt, kann jederzeit geändert werden ohne die Datei ansonsten zu verändern.
Wenn du die Auflösung der Datei also schon geändert hast und diese von der KB-Größe immernoch zu "groß" sind, kannst du nur stärker komprimieren.Schau mal hier, das Script bietet auch einen "Quality"-Parameter mit dem du die Kompressionsrate festsetzten kannst: LINK
Die Pixel sind da unter "$Canvas..." fest eingetragen die musst du für deine Werte anpassen. Für die Kompression, probier mal 75 für $Quality, das sollte bei 96x96 alle Bilder etwa auf 3 bis 4 KB verkleinern.
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Montag, 19. Februar 2018 11:53
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 21. Februar 2018 11:51
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 21. Februar 2018 20:06
Alle Antworten
-
Das Scrip scheint nichts an der Auflösung sondern nur an der Größe zu ändern.
Die Auflösung sind DPI. Hast du ein Bild mit 300DPI verkleinert, hast du immer noch 300DPI Auflösung.
Du benötigst also zusätzlich eine Anpassung der DPI auf z.B. 96 für Bildschirme, nur schön werden die Bilder da nicht.
Vielleicht gibts ja in dem Script noch einen Parameter für DPI.
-
Du verwendest in beiden Code Snippets nicht das angegebene Modul.
Aber statt das Bild immer weiter zu verkleinern wuerde ich Vorschlagen auf Dienste zu setzen, die sich auf genau sowas spezialisiert haben (natuerlich sofern du eine Internetverbindung auf dem jeweiligen Server hast).
Als Beispiel wuerde mir TinyPNG einfallen:
http://jockstothecore.com/optimizing-images-sitecore/
-
Hallo,
ich benutze dazu folgende Software CodeTwo Active Directory Photos.
Vielleich hilft dir das.
Viele Grüße
-
Nur die Auflösung (x*y Punkte) und die Kompressionsrate bestimmen die Größe der Datei in KB.
DPI ist kein fester Eigenschaftswert einer Bilddatei. Der DPI-Wert wird vom Scanner, Kamera etc einfach in den Metadaten (EXIFetc) hinterlegt, kann jederzeit geändert werden ohne die Datei ansonsten zu verändern.
Wenn du die Auflösung der Datei also schon geändert hast und diese von der KB-Größe immernoch zu "groß" sind, kannst du nur stärker komprimieren.Schau mal hier, das Script bietet auch einen "Quality"-Parameter mit dem du die Kompressionsrate festsetzten kannst: LINK
Die Pixel sind da unter "$Canvas..." fest eingetragen die musst du für deine Werte anpassen. Für die Kompression, probier mal 75 für $Quality, das sollte bei 96x96 alle Bilder etwa auf 3 bis 4 KB verkleinern.
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Montag, 19. Februar 2018 11:53
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 21. Februar 2018 11:51
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 21. Februar 2018 20:06