Welches Programm kann die Größe eines Bildordners automatisch ändern und auf eine bestimmte Auflösung zuschneiden?

11

Ich möchte einen Ordner mit Bildern in verschiedenen Größen nehmen und sie in ein 600 x 600-Rasterquadrat schneiden lassen, das aus der Mitte des Bildes ausgeschnitten ist. Gibt es ein Programm, das die Größe automatisch ändern und auf diese Dimensionen zuschneiden und dann als komprimierte PNG-Datei ausgeben kann? Für Bilder, die kleiner als 600 x 600 sind, möchte ich, dass das Programm das Bild auf diese Dimension vergrößert.

Peter
quelle
1
Ich habe mein Irfanview überprüft und sein Batch-Zuschnitt ist statisch, nur mit der Option, von Ecken und einem festen Versatz aus zu beginnen. Die vom OP angeforderte Zentrierung und bedingte Größenänderung kann nicht durchgeführt werden. Es ist nicht für variable Bildgrößen geeignet.
Michael Nielsen
1
Ich war sehr zuversichtlich, dass XnConvert das tun könnte, wonach Sie suchen, aber wie IrfanView wird es bei beliebigen Bildgrößen keinen zentrierten Zuschnitt ausführen .
Mark Whitaker

Antworten:

12

Der Stapelbefehl von Photoshop kann dies tun. Sie würden sich im Wesentlichen einmal selbst 'aufzeichnen', um das Zuschneiden usw. durchzuführen, und dann die Aufzeichnung für alle gewünschten Dateien ausführen. Wenn Sie die Größe der kleineren Bilder automatisch ändern möchten, müssen Sie ein wenig Skripte erstellen.

Irfanview verfügt auch über einen umfassenden Image-Batch-Prozessor, erfordert jedoch möglicherweise einige Experimente, um die gewünschten Ergebnisse zu erzielen.

ElendilTheTall
quelle
10

Mit ImageMagick können Sie Befehle in einem Windows-Befehlsfenster ausführen. Sie müssen mit dem Erstellen von Dos-Batch-Dateien vertraut sein.

Ein Beispiel finden Sie im letzten Beitrag in dieser Diskussion: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=21112

Relevantes Beispiel aus diesem Forumsbeitrag:

@echo off

cd C:\Users\user\Desktop\New\New folder

convert *.jpg -fuzz 10%% -trim -write %%02d_trim.png -scale "x1!" txt:

convert *_trim.png -crop 209x329+0+0 -fuzz 10%% -trim +repage %%02d_left.png

convert *_trim.png -crop 173x336+227+0 -fuzz 10%% -trim +repage %%02d_right.png

@pause
Rene
quelle
Es ist am besten, wenn die relevanten Teile externer Ressourcen hier zitiert oder zusammengefasst werden. Externe Links können möglicherweise jederzeit offline gehen und eine Antwort ungültig machen, die nur einen Link enthält. Der von Ihnen angegebene Link enthält eine Antwort. Ich möchte Sie jedoch bitten, den entsprechenden Befehl hier in Ihrer Antwort anzugeben, um die Funktionsfähigkeit zu verbessern.
jrista
7

Zuerst dachte ich, Sie wollten eine Batch-Größenänderung, was viele Programme können. Aber dann wurde mir klar, dass Sie eine Kombination aus Größenänderung und Zuschneiden durchführen möchten und dass der Computer berechnen soll, wie 600 x 600 Pixel dynamisch am besten aus dem Bild ausgeschnitten werden können.

Dies liegt daran, dass es sich nicht um eine "One True Solution" -Aufgabe handelt, da es normalerweise eine menschliche Beurteilung ist, wie das Bild zugeschnitten werden soll. Daher kann dies nur durch Bootstrapping unter bestimmten Bedingungen erfolgen. Sehen Sie sich beispielsweise das Seitenverhältnis an und ändern Sie die Größe der kürzesten Dimension immer auf X und schneiden Sie Y-Pixel (zentriert / rechts / links) zu. Wenn ich Ihre Aussage richtig gelesen habe, möchten Sie 600 Pixel aus X und Y in beiden Dimensionen zentrieren, wenn beide Dimensionen 600 oder mehr betragen. Und die Größe nur auf 600 ändern, wenn eine Dimension kleiner als 600 ist?

Ich wollte schon lange eine solche Funktion zu meinem Programm "Image View Plus More" hinzufügen, und ich denke, die Funktionseinstellungen sollten ungefähr so ​​aussehen: - Schnittgröße: wxh - Breite ausrichten: Mitte / links / rechts - Höhe ausrichten: Mitte / links / rechts - Größe ändern: nein / wenn kleiner als / wenn größer als / beide

Benötigen Sie weitere Einstellungen?

Update: Ich bin jetzt mit der Programmierung dieser Funktion in Image View Plus More 2.4 fertig:

http://www.sequoiagrove.dk/tools.php

Gewusst wie: Installieren Sie die Bilder, die Sie zuschneiden möchten, und ziehen Sie sie in den neuen Ordner. Geben Sie ihm einen Basisnamen oder%, um den ursprünglichen Dateinamen zu verwenden, und wählen Sie dann im nächsten Dialogfeld "Autocrop" aus "und füllen Sie die Felder für Breite und Höhe aus, wählen Sie die Ausrichtung" Mitte "für Höhe und Breite und aktivieren Sie" Größe ändern, wenn kleiner ".

Ich habe ein Tutorial gemacht, wie es geht:

Die Lösung für das OP-Problem: http://www.youtube.com/watch?v=wBc1s6zuDJM

Ein weiteres Beispiel: http://www.youtube.com/watch?v=3nFrnaefsqA

Michael Nielsen
quelle
Siehe meine Antwort, ich habe den Code in Python geschrieben.
Onlyjus
1
Ja, jetzt ist es nicht so statisch, aber sind Sie sicher, dass das OP daran interessiert ist, seine Bildbearbeitung zu programmieren?
Michael Nielsen
Ich habe keine Ahnung. Das OP hat gerade nach einem Programm gefragt, also habe ich eines geschrieben.
Onlyjus
Wie Sie sehen, habe ich die Funktion jetzt hinzugefügt und habe Verbesserungsvorschläge wie "Beispiel zeigen" (auf dem aktuell angezeigten Foto), sodass Sie sich nicht auf die Zentrierung oder Ausrichtung an den Kanten beschränken müssen. Natürlich müsste ich herausfinden, wie ich dieses Beispiel auf verschiedene Seitenverhältnisse und Größen verallgemeinern kann.
Michael Nielsen
Nett! In was ist Ihr Programm geschrieben und ist die Quelle verfügbar?
Nur
5

Wenn Sie gerne programmieren, können Sie Python (Computersprache) verwenden und eine ausgezeichnete Bibliothek verfügt über PIL , um auf programmatischer Ebene zuzuschneiden, die Größe zu ändern, Histogramme zu zeichnen, einzelne Pixelwerte zu erhalten usw. So können Sie einfach ein einfaches Skript schreiben, um alle Bilder in einem Ordner zu finden und den Vorgang auszuführen.

Dieser Code sollte genau das tun, was Sie wollen, und je nach Bildgröße einige Bilder pro Sekunde verarbeiten:

#Python 2.7, PIL 1.1.7

import Image
import glob
import os

#Function to resize image, preserving aspect ratio
def resizeAspect(im, size):
    w,h = im.size
    aspect=min(size[0]/float(w), size[1]/float(h))
    return im.resize((int(w*aspect),int(h*aspect)),Image.ANTIALIAS)

imgList=glob.glob('C:/icons/*.png')         #Find all png images in a directory

for img in imgList:                              #Loop through all found images
    im = Image.open(img)                         #open the image
    print "resizing:",os.path.basename(img)
    w,h = im.size                                #Get image width and height
    if min(w,h)<600:                             #Check if either dimension is smaller then 600
        im=resizeAspect(im,(600,600))            #Re-size Image
        w,h = im.size                            #update image size
    center = [int(w/2.0),int(h/2.0)]             #Calculate Center
    box = (center[0]-300, center[1]-300, center[0]+300, center[1]+300) #Defines a box where you want it to be cropped
    croppedIm = im.crop(box)                     #Crop the image
    #croppedIm.show()                            #Show the cropped image
    fileName, fileExtension=os.path.splitext(img)
    croppedIm.save(fileName+'_crop.png', "PNG")  #Save the cropped image

Wenn Sie anfangen, auf programmatischer Ebene zu arbeiten, ist der Himmel die Grenze! Es ist sogar möglich, Gesichter zu erkennen und um das Gesicht herum zuzuschneiden, sodass Sie Tausende von Fotos intelligent zuschneiden können ...

[aktualisiert am 12.09.2012]

Onlyjus
quelle
4

ThumbsPlus kann das tun, was Sie verlangen. Wählen Sie im Menü Bild die Option Stapelverarbeitung oder drücken Sie F12 und beantworten Sie die interaktiven Eingabeaufforderungen. Sie können einem Satz mehrere Vorgänge hinzufügen und ihn für die sofortige und zukünftige Verwendung speichern. Greifen Sie in Zukunft einfach auf den zuvor konfigurierten Set-Namen zu, um ihn automatisch in einem Verzeichnis oder einer Auswahl von Fotos oder sogar in einem gesamten Verzeichnisbaum auszuführen.

Beim Erstellen des Sets erhalten Sie ein Beispielbild, um die Option zu veranschaulichen, die Sie den Vorgängen hinzugefügt haben.

Seien Sie beim Aufbau des Sets vorsichtig, da die Reihenfolge der Operationen wichtig ist.

Victor Engel
quelle
4

Sizzlepig.com ist ein Online-Tool, mit dem dies problemlos möglich ist. Sie können die "Blaupausen" -Größe auf 600 x 600 festlegen und dann alle Bilder zuschneiden.

Für den Teil "Für Bilder, die kleiner als 600 x 600 sind, möchte ich, dass das Programm die Größe des Bildes auf diese Dimension erhöht." Ich würde dringend empfehlen, NICHT zu versuchen, die Bilder zu skalieren, sondern eine Quelle mit höherer Qualität zu finden, mit der gearbeitet werden kann. Ich weiß, dass dies nicht immer möglich ist, aber es wird zu einer viel höheren Ausgabequalität führen als der Versuch, eine Hochskalierung durchzuführen.

(Ich arbeite für sizzlepig, aber es ist immer noch ein großartiges Werkzeug)

Jeremy
quelle
Bitte siehe FAQ . Es ist in Ordnung, hier deine eigenen Sachen zu erwähnen, aber du musst es sagen.
Bitte lesen Sie mein Profil
1
Cool. Willkommen auf der Website und bleiben Sie hier und beantworten und stellen Sie einige andere Fragen. :)
Bitte lesen Sie mein Profil
2

Irfanview kann dies, erfordert jedoch einige Einstellungen.

Verwenden Sie die Option Stapelkonvertierung. Wählen Sie "PNG" als Ausgabeformat. Klicken Sie auf die Schaltfläche "Optionen" neben dem Ausgabeformat, wählen Sie die gewünschte Komprimierung aus und klicken Sie auf OK

Aktivieren Sie das Kontrollkästchen "Erweiterte Option verwenden" und klicken Sie auf die Schaltfläche "Erweitert"

Sie sehen dieses Fenster

Irfanview erweiterte Einstellungen

Richten Sie die Größenänderung mit der kürzesten Seite 600 ein. Stellen Sie sicher, dass Sie "Seitenverhältnis beibehalten" und "Resample-Funktion verwenden" aktivieren. Deaktivieren Sie "Kleinere Bilder nicht vergrößern"

Wenn Sie die Größe Ihrer Originalbilder drastisch reduzieren, können Sie das Kontrollkästchen "Schärfen" aktivieren und einen Wert hinzufügen. Meine Anforderung war für Bilder mit einer Größe von 150 x 150 und ich stellte fest, dass sie einen Schärfungswert von etwa 20 benötigten, um der Bildqualität zu entsprechen, die ich von Photoshop erhielt. Für Ihre 600x600-Bilder benötigen Sie möglicherweise keinen Schärfungswert. Sie können diese Option also deaktivieren.

Verwenden Sie anstelle von "Zuschneiden" die Einstellung "Leinwandgröße" - aktivieren Sie die Option

Klicken Sie auf die Schaltfläche "Einstellungen" neben der Option für die Leinwandgröße. Sie sehen dieses Fenster

Optionen für die Leinwandgröße von Irfanview

Wählen Sie Methode 2 und Breite und Höhe als 600. Wählen Sie die Option "Mitte" für den Anker

Die Leinwandfarbe spielt keine Rolle, da kein Bildrand hinzugefügt wird

Aktivieren Sie nun auf dem erweiterten Bildschirm erneut das Kontrollkästchen neben "Benutzerdefinierte Verarbeitungsreihenfolge" und stellen Sie sicher, dass die "Größenänderung" an erster Stelle in der Liste steht - dh, dass die Größenänderung vor dem Zuschneiden erfolgt.

OK klicken

Stellen Sie sicher, dass Sie die Dateien ausgewählt haben, die Sie konvertieren möchten, richten Sie das Ausgabeverzeichnis ein und klicken Sie dann auf "Stapel starten".

Nat
quelle
0

Unter http://pixresizer.software.informer.com/ steht ein Dienstprogramm mit mehreren Optionen zur Verfügung.

Das ist gute Software. Gute Mittel, einfach zu bedienen und schneller bei der Arbeit. Während ich fotografiere, verwende ich es, um Bilder im Stapel zu verarbeiten. Oft muss ich die Größe von Bildern reduzieren, um sie über das Internet zu teilen. Ich habe auch eine andere Software ausprobiert, fand diese aber gut. (Ich bin nicht mit dieser Firma verbunden.)

Mahesh Mankar
quelle
Ist die Software gut? Warum? Sind Sie mit dem Unternehmen verbunden?
Paul Cezanne
Hallo Paul, ja das ist gute Software. Gute Mittel, einfach zu bedienen und schneller bei der Arbeit. Während ich fotografiere, verwende ich es, um Bilder im Stapel zu verarbeiten. Ich habe auch eine andere Software ausprobiert, fand sie aber gut. Nein! Ich bin nicht mit dieser Firma verbunden.
Mahesh Mankar
Mahesh, kannst du deine Kommentare nehmen und deine Antwort bearbeiten? Nicht jeder liest die Kommentare. Und erzähl uns immer mehr darüber, wir würden es gerne wissen!
Paul Cezanne
0

Ich weiß nicht, warum es niemand erwähnt, aber mein Favorit ist multipleimageresizer.net . Sie können damit viel zuschneiden, Format, Größe ändern, Text, Wasserzeichen hinzufügen ... usw. auf mehreren Bildern gleichzeitig.

Dies ist eine echte Zeitersparnis. Ich empfehle!

538ROMEO
quelle