Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateigröße von Bildern per Batch anpassen?

Frage Entwicklung Batch & Shell

Mitglied: nummer80

nummer80 (Level 1) - Jetzt verbinden

21.02.2011 um 15:26 Uhr, 4648 Aufrufe, 15 Kommentare

Hallo Zusammen,

ich habe bereits ein Batch das per "convert" Bildergößen (viele Bilder) ändert ( convert -resize 100x100.. usw.).
Nun habe ich aber noch die zusätzliche Anforderung bekommen, dass alle Bilder maximal ( z.B.) 50KB groß sein dürfen.
Ist solch eine Dateigrößenanpassung irgendwie (per Batch / Imagemagick) lösbar?
Ich habe leider nichts dazu gefunden.

Wäre für einen Tipp sehr dankbar.

Viele Grüße,
nummer80
Mitglied: mustangdriver
21.02.2011 um 15:52 Uhr
Verwende doch den Microsoft Office Picture Manage.
Dort gehst du auf die Ansicht Miniaturansicht, markierst mit STRG-A alle Bilder und dann auf "Bilder bearbeiten/Größe ändern" hier kannst dann sagen, was du für ein Maximalformat haben willst oder um wieviel % es verkleinert werden soll.
Bitte warten ..
Mitglied: bastla
21.02.2011 um 16:35 Uhr
Hallo nummer80!

Du kannst zwar per Batch die Dateigröße feststellen - zB mit
for /f "delims=" %%i in ('dir /b /a-d "D:\Dein Bilderordner\klein\*.jpg"') do if %%~zi gtr 51200 echo Zu verkleinern: %%i (derzeit: %%~zi Bytes)
- wie Du die Bilder aber schlanker bekommst (zB stärkere jpg-Kompression), müsstest Du Dir selbst überlegen ...

Grüße
bastla
Bitte warten ..
Mitglied: TraceHard40
21.02.2011 um 16:36 Uhr
Hallo,

ich benutze dazu IrfanView.

Grüße,
TH40
Bitte warten ..
Mitglied: bastla
21.02.2011 um 16:44 Uhr
Hallo TH40!

Kannst Du kurz beschreiben, wie Du damit automatisiert die Dateigröße auf max 50 KB bekommst?

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
21.02.2011 um 17:29 Uhr
moin,

ein tool was auch per Batch bedienbar ist:
http://www.imageresizer.com/

Gruß Phil
Bitte warten ..
Mitglied: TraceHard40
21.02.2011 um 17:29 Uhr
Zitat von bastla:
Hallo TH40!

Kannst Du kurz beschreiben, wie Du damit automatisiert die Dateigröße auf max 50 KB bekommst?

Grüße
bastla

Servus,

ja kein Problem:

1. Zunächst benötigt man dazu IrfanView: http://www.irfanview.de/
2. Dann benötigt man noch das RIOT-Plugin: http://download.criosweb.ro/download.php?sid=R-dll
3. Die riot.dll gehört in den Irfan-View Plugin-Order, die FreeImage.dll in das root-Verzeichnis vom Irfan-View.

4. Im Programm - File -> Batch Conversion/Rename ->

5. Dort kann man unter Options die gewünschten Werte eintragen.
6. Dann noch per Add oder Add all die Files einbinden und auf "Start Batch" gehen.
7. Fertig

Viele Grüße,
TH40
Bitte warten ..
Mitglied: nummer80
22.02.2011 um 11:46 Uhr
Hallo,

also vielen Dank erstmal für die schnellen Antworten !!!
Ich werde das mal mit IrfanView versuchen.
Kann ich das auch per Komandozeile (Batch Datei) ansprechen (also nicht per Klick im Programm selbst die Bilder adden und dort die KB-Größe einstellen)??
Speziell diese Zeile resp.die Einstellung dazu versuche ich zusammenzubekommen, scheitere aber leider etwas in der Hilfeoption...
Vielleicht hat jemand von Euch damit schon seine Erfahrung gemacht und könnte mir weiterhelfen?!

Vielen Dank im voraus!
nummer80
Bitte warten ..
Mitglied: pieh-ejdsch
22.02.2011 um 12:13 Uhr
moin nummer80,

die meisten PictureProgramme können zwar eine Batchverarbeitung aber keine KommandoZeile.

als Alternative könnstest Du "Boxwech" benutzen. Das konfigurierst Du auf den Namen der Batchdatei und Klickst dann Die ganzen schritte Durch in Irfanview.
Einmal eingerichtet erledigt Boxwech diese ganze Klickabfolge Superschnell. Ungefähr nach dem Prinzip eines Makros.

Gruß Phil
Bitte warten ..
Mitglied: nummer80
22.02.2011 um 12:45 Uhr
Hi Phil,

danke für den Tipp,
ich bin mittlerweile soweit, dass ich per Kommandozeile (.bat-Datei) das Programm aufrufe
(diese Datei liegt dazu i.M. unter C:\Programme\IrfanView)
und auch die Einstellungen, die ich im Programm vorher gemacht habe (per Klick, nämlich max.50KB) verarbeitet werden.

Der Inhalt der Datei:

i_view32.exe "c:\test\*.jpg" /advancedbatch /convert="c:\test\neu\*.jpg"

Ich dachte zwar, dass ich die Einstellungen mit in diese Zeile schreiben kann
(das wäre mir bedeutend lieber, da man sonst diese Einstellungen im Programm nie ändern darf bzw. nur eine KB-Größe herausbekommt),
aber so funktioniert es -zumindest in einem ersten Test.
Bei einem zweiten Test mit ein paar Bildern mehr, hat es mir allerdings ein Bild nicht verarbeitet, aber das kann auch am Bild selbst liegen...

Vielleicht hat aber trotzdem noch jemand eine Idee bzgl. des Aufrufs, bzw. der mitzugebenden Argumente bzgl. der KB Zahl?!

Danke und Gruß,
nummer80
Bitte warten ..
Mitglied: bastla
22.02.2011 um 12:50 Uhr
Hallo nummer80!

Quick & dirty : Da die Einstellungen ja in einer Datei (ev ".ini", habe gerade kein "IrfanView" zur Hand) gespeichert sein dürften, könntest Du mehrere Versionen dieser Datei (für unterschiedliche KB-Werte) erstellen und vorweg die richtige Version über die "Standard-Datei" kopieren ...

Grüße
bastla
Bitte warten ..
Mitglied: messebe
23.02.2011 um 00:08 Uhr
MoinMoin,
ich habe das ganze so gelöst :

c:\programme\irfanview\i_view32.exe d:\irfan_input\*.jpg /resize=(100,0) /aspectratio /convert=d:\irfan_pics_for_the_web\*.jpg

Alle Bilder haben eine Seitenlänge von 800 Pixel und werden größenmäßig angepasst, Größe ist dann so bei 100 -130 Kb
Bitte warten ..
Mitglied: nummer80
23.02.2011 um 14:23 Uhr
Hallo Zuammen,

vielen Dank noch für Eure zwei Beiträge.
Ich bin leider noch nicht dazu gekommen, mich mit der Quick&Dirty Lösung zu beschäftigen
und die Lösung von messebe ist leider nicht genau das auf was ich hinaus sollte,
denn ich habe eine vorgegebene Größenbeschränkung (also eine maximale KB Zahl pro Bild (50KB)) die nicht überschritten werden darf...
Bitte warten ..
Mitglied: messebe
23.02.2011 um 19:12 Uhr
MoinMoin

so, ich denke jetzt sollte es passen.
1. Plugin iv_formats installieren download von : www.irfanview.com/plugins.htm
2. in Irfanview unter Datei Batch / Stapel Konvertierung die Optionen einstellen
Unter Zielformat ist dann die Größe versteckt, dort auf 100 KB setzen und speichern
3. In der CommanLine den Parameter /advancedbatch angeben

c:\programme\irfanview\i_view32.exe d:\irfan_input\*.jpg /resize=(100,0) /aspectratio /advancedbatch /convert=d:\irfan_pics_for_the_web\*.jpg


Hoffe Dir ist damit geholfen
Bitte warten ..
Mitglied: pieh-ejdsch
26.02.2011 um 02:09 Uhr
moin,

ich hab mal etwas zusammengeschruppt wobei man die Auflösung die Qualität und die Dateigröße den Anforderungen entsprechend einstellen kann.

Batch Bilder größen
01.
:: schnipp----- ResizePics.cmd ---- 
02.
@echo off&setlocal 
03.
 
04.
set "iPath=%ProgramFiles%\IrfanView\i_view32.exe" 
05.
 
06.
set "CurrentPictPath=E:\Pics\" 
07.
 
08.
set "CurrentPict=*.jpg" 
09.
 
10.
:: Darf nicht im Selben Verzeichnis sein wie die Quelle 
11.
set "ResizedPath=E:\ResPics\" 
12.
 
13.
 
14.
:: Maximale Auflösung einstellen 
15.
:: "ResDimMax="    -> Keine Obere Auflösungsgrenze 
16.
:: "ResDimMax=50"  -> Gibt den Wert der Größten möglichen Auflösung an 
17.
 
18.
set "ResDimMax=800" 
19.
 
20.
:: Minimale Auflösung einstellen  
21.
:: "ResDimMin=" -> Qualitäts einstellung hat Vorrang 
22.
:: "ResDimMin=0"   -> Qualitäts Einstellung Bleibt 100% 
23.
:: "ResDim=50"  -> Qualität wird ab dieser Auflösung Heruntergesetzt 
24.
 
25.
set "ResDimMin=800" 
26.
 
27.
 
28.
:: Einheit der Dateigröße (B, KB, MB) 
29.
set "SizBits=KB" 
30.
 
31.
:: Maximale Dateigröße einstellen  
32.
set "ResSizMax=50" 
33.
 
34.
:: Minimale Dateigröße einstellen (in KB) 
35.
:: sollte wenigstens 500 bytes kleiner als ResSizMax sein (wird automatisch ausgerechnet wenn gleich) 
36.
 
37.
set "ResSizMin=50" 
38.
 
39.
:: Minimale mögliche Bildqualität einstellen (Minimal 25 empfohlen) 
40.
 
41.
set "ResQuaMin=30" 
42.
 
43.
 
44.
 
45.
:: Ende Einstellungen 
46.
:: 
47.
set "CurrentPicDat=%Temp%\CPictdat" 
48.
if /i "%SizBits%" == "B"  set /a SizBits = 1 
49.
if /i "%SizBits%" == "KB" set /a SizBits = 1024 
50.
if /i "%SizBits%" == "MB" set /a SizBits = 1048576 
51.
 
52.
if defined ResSizMax set /a ResSMax = ResSizMax * SizBits 
53.
if defined ResSizMin set /a ResSMin = ResSizMin * SizBits 
54.
if defined ResSizMin if "%ResSMin%" geq "%ResSMax%" set /a ResSMin - = 500 
55.
for %%i in ("%CurrentPictPath%%CurrentPict%") do echo Bearbeite "%ResizedPath%%%~nxi"&set "CurrentPict=%%~nxi"&set "CurPict=%%~i"& call :dimensons 
56.
 
57.
pause 
58.
goto :eof 
59.
 
60.
:dimensons 
61.
set "LongSize=0" 
62.
"%iPath%" "%CurPict%" /info="%CurrentPicDat%" 
63.
if not "%OS%" == "!OS!" setlocal enabledelayedexpansion 
64.
for /f "tokens=4,6" %%j in ('findstr /b /c:"Image dimensions =" "%CurrentPicDat%"') do ( 
65.
	for %%l in (%%j %%k) do ( 
66.
		if !LongSize! lss %%l set "LongSize=%%l" 
67.
)	) 
68.
for %%i in ("%CurPict%") do set /a PictSize = %%~zi 
69.
if not defined ResDimOld if not defined ResDimOld (set "ResDimOld=%ResDimMax%") else set "ResDimOld=%LongSize%" 
70.
if not defined ResQua (set "AQuali=100") else set "AQuali=%ResQua%" 
71.
if defined Test goto :SizeMax 
72.
:DimMax 
73.
if not defined ResDimMax goto :DimMin 
74.
if %ResDimMax% leq %LongSize% (set "Resolution=/resize=(%ResDimMax%,%ResDimMax%)"&goto :Quali) 
75.
:DimMin 
76.
if not defined ResDimMin goto :Quali 
77.
if %ResDimMin% geq %LongSize% (set "Resolution=/resize=(%ResDimMin%,%ResDimMin%)") 
78.
:Quali 
79.
if defined ResQua set "Qualit=/jpgq=%ResQua%" 
80.
if not defined Test goto :Picture 
81.
:SizeMax 
82.
if not defined ResSizMax goto :SizeMin 
83.
if %ResSMax% leq %PictSize% goto :Kleiner 
84.
if not defined ResSizMin echo %LongSize%x, %AQuali%%%, %PictSize% byte&echo.&endlocal&goto :eof 
85.
:SizeMin 
86.
if not defined ResSizMin goto :Picture 
87.
if %ResSMin% geq %PictSize% goto :groesser 
88.
echo %LongSize%x, %AQuali%%%, %PictSize% byte&echo.&endlocal&goto :eof 
89.
:Picture 
90.
"%iPath%" "%CurrentPictPath%%CurrentPict%" %Qualit% %Resolution% /aspectratio /resample /convert="%ResizedPath%%CurrentPict%" 
91.
if defined Test if not defined ResSizMax (echo %LongSize%x, %AQuali%%%, %PictSize% byte&echo.&endlocal&goto :eof) 
92.
set "CurPict=%ResizedPath%%CurrentPict%" 
93.
set "Test=1"&goto :dimensons 
94.
:kleiner 
95.
if not defined Test goto :SizeMin 
96.
if defined ResDimMax ( 
97.
	set /a "ResDim= ResDimMax - ( ResDimMax / 20 )" 
98.
) else set /a "ResDim= LongSize - ( LongSize / 20 )" 
99.
if defined ResDimMin ( 
100.
	if !ResDimMin! leq %ResDim% ( 
101.
		set "ResDimMax=%ResDim%" 
102.
	) else if not !ResDimMin! == %LongSize% ( 
103.
		set "ResDimMax=%ResDimMin%" 
104.
	) else ( 
105.
		if not defined ResQua ( 
106.
			set "ResQua=95" 
107.
		) else set /a ResQua - = 5 
108.
109.
) else ( 
110.
	if not defined ResQua ( 
111.
		set "ResQua=95" 
112.
	) else set /a ResQua - = 5 
113.
114.
if defined ResQua ( 
115.
	if defined ResQuaMin ( 
116.
		if !ResQuaMin! leq %ResQua% (set "ResQua=%ResQua%") else echo Quali minimum erreicht&echo %LongSize%x, %AQuali%%%, %PictSize% byte&echo.&goto :eof 
117.
	) else set "ResQua=%ResQua%" 
118.
119.
set "Test=" & goto :DimMax 
120.
:groesser 
121.
if not defined Test goto :Picture 
122.
if defined ResDimMax ( 
123.
	set /a "ResDim= ResDimMax + ( ResDimMax / 25 )" 
124.
) else set /a "ResDim= LongSize + ( LongSize / 30 )" 
125.
 
126.
if %ResDimOld% geq %ResDim% ( 
127.
	set "ResDimMax=%ResDim%" 
128.
	set "LongSize=%ResDim%" 
129.
	set "ResQua=" 
130.
) else (if defined ResQua ( 
131.
		set "ResQua=" 
132.
		) else echo Maximum Dimension erreicht&echo %LongSize%x, %AQuali%%%, %PictSize% byte&echo.&goto :eof 
133.
134.
135.
set "Test=" & goto :DimMax 
136.
:: schnapp----- ResizePics.cmd ----
Gruß Phil
Bitte warten ..
Mitglied: nummer80
01.03.2011 um 10:32 Uhr
Hallo Zusammen,

bin die Tage nicht dazu gekommen reinzuschauen, aber da ich es ja schon fast habe
und ihr Euch jetzt auch nochmal die Mühe gemacht habt das so auszuführen,
wollte ich mich nochmal bei Euch bedanken und schließe das Thema damit!

Merci

Gruß,
nummer80
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...