2014-06-08 4 views
0

Я создаю файлы изображений PNG с GIMP и хочу сделать несколько иконок из этого PNG изображений разных размеров, а также файлов и файлов.imagemagick командной строки конвертировать скрипт с использованием терминала Linux

Я хочу «переработать» конвертировать с ImageMagick или что-то подобное. И согласитесь, что правила именования и требования к размеру читаются из текстового файла, возможно, потому что я также хочу создать другое отдельное изображение с использованием GIMP и переделывать его несколько раз с разными именами файлов на каждом из них.

Редактировать

Один файл изображения должен получить преобразованы в ЭТО:

Icon.png 
    [email protected] 
    Icon-72.png 
    [email protected] 

размеры файлов, чтобы быть ЭТА:

57x57 
    114x114 
    72x72 
    144x144 

$ convert image.png -resize 57x57 Icon.png 
$ convert image.png -resize 114x114 [email protected] 
# ...etc 
+0

Так что вы попробуйте и как это работает? – Pavel

+0

Желая хорошо начать. У упомянутого вами пакета есть утилита для конвертирования, которую вы можете использовать для этой цели. Прежде всего, вы можете получить некоторые четкие идеи, как должны выглядеть ваши соглашения об именах, прежде чем пытаться использовать их в коде. Пожалуйста. –

+0

Пожалуйста, покажите нам текстовый файл, который контролирует работу процесса. Кроме того, скажите нам, находитесь ли вы в Windows или Linux, так как ответ будет другим. –

ответ

0

поэтому, если есть текстовый файл, хранящий map "имя файла -> размер изображения" всего в двух столбцах, то вы должны иметь возможность итерации по линиям, например как это:

cat map.txt | while read line; do 
    file=$(echo $line | awk '{print $1}') 
    size=$(echo $line | awk '{print $2}') 

    newfile=${file%.png}-new.png 

    convert $file -resize $size $newfile 
done 
+0

Это выглядит близко, не могли бы вы взглянуть на мой оригинальный отредактированный пост ? карта предназначена для результирующих имен и размеров. Спасибо. –

0

Это своего рода трудно догадаться, что вы имеете в виду, но предположим, что params.txt выглядит следующим образом:

-resize 64x64 

Тогда вы могли бы сделать это:

#!/bin/bash 
params=$(cat params.txt) 
for f in *.png 
do 
    newname=${f%.png}_new.png 
    echo convert "$f" $params "${newname}" 
done 
Смежные вопросы