2015-06-18 4 views
2

Я искал google.com пару часов, пытаясь найти способ сделать это, но ответа нет. Везде размер изменяется до самого длинного размера, но ничего не изменяется только для указанной ширины.Изменение размера изображений только до определенной ширины (AppleScript или Automator)

Есть ли какой-либо способ в Automator или AppleScript для изменения размера изображений только до указанной ширины, а не только самого длинного размера? Мне нужны мои выходные изображения для определенной ширины (например, 200 пикселей).

+0

Вы имеете в виду изменение размера до указанной ширины, поддерживая соотношение сторон, r IGHT? – Droppy

+0

Это можно сделать с помощью Applescript с Photoshop. У вас есть Photoshop? –

+0

@ Droppy yep. правильно. – smithua

ответ

3

Вы можете сделать это с помощью простой AppleScript и утилита оболочки под названием глотка:

on open droppings 
    repeat with everyDrop in droppings 
     set originalFile to quoted form of POSIX path of (everyDrop as text) 
     tell application "Finder" 
      set originalName to everyDrop's name 
      set imageContainer to (everyDrop's container as text) 
     end tell 

     set reSizedName to "200W" & originalName 
     set outputPath to quoted form of POSIX path of (imageContainer & reSizedName) 

     do shell script "sips --resampleWidth 200 " & originalFile & " --out " & outputPath 
    end repeat 
end open 

on run 
    display dialog "Drop some Image Files to Re-size them all to 200 pixels wide" buttons {"Aye Aye"} default button "Aye Aye" 
end run 

Это сохраняет соотношение сторон исходного изображения, и просто повторно размеры ширину до 200 пикселей. Надеемся, вы сможете увидеть, где вы можете внести необходимые изменения для своего рабочего процесса.

Если вы хотите отказаться от папки изображений, а также отдельные файлы, попробуйте это как капельке:

on open droppings 
    repeat with everyDrop in droppings 
     if (info for everyDrop)'s folder is true then 
      tell application "Finder" to set allImageFiles to everyDrop's every file 
      repeat with eachFile in allImageFiles 
       my SetWidthTo200(eachFile) 
      end repeat 
     else 
      my SetWidthTo200(everyDrop) 
     end if 
    end repeat 
end open 

to SetWidthTo200(img) 
    set originalFile to quoted form of POSIX path of (img as text) 
    tell application "Finder" 
     set originalName to img's name 
     set imageContainer to (img's container as text) 
    end tell 
    set reSizedName to "200W" & originalName 
    set outputPath to quoted form of POSIX path of (imageContainer & reSizedName) 
    do shell script "sips --resampleWidth 200 " & originalFile & " --out " & outputPath 
end SetWidthTo200 


on run 
    display dialog "Drop some Image Files to Re-size them all to 200 pixels wide" buttons {"Aye Aye"} default button "Aye Aye" 
end run 

Там до сих пор нет проверки ошибок или проверки, чтобы убедиться, что файлы действительно изображение файлы, поэтому имейте это в виду.

+0

Знаете ли вы, как адаптировать это, чтобы он работал с несколькими файлами, которые вы просто бросаете на скрипт, чтобы сделать его более полезным? –

+0

@MarkSetchell Самый быстрый способ - использовать «Рекурсивный образ обработки файлов сценария» «Редактор рекурсивных изображений» (см. Меню «Файл»), в который можно было бы поместить часть обработки этого кода в «process_item (this_item)». –

+0

@Zero Большое спасибо, я смотрю ваше предложение прямо сейчас. –

0

Вот резюме от этого OSX Tips с помощью Automator для изменения размеров изображений

  • открыт "Automator"
  • File> New> Услуги
  • Настройки:
    • Сервис получил отмеченными: «файлы изображений "
    • в категории" Finder "
  • в левой панели, найти для действий под названием «Get Selected Finder Items»
  • Следующий вид действий «Масштаб изображений»
  • Если вы хотите, чтобы заменить оригинал, выберите «Не добавлять», когда спрашивают «не хотите ли вы добавить действие« Копировать элементы поиска », в противном случае выберите« Добавить »
  • Чтобы иметь возможность выбирать максимальные пиксели перед масштабированием, нажмите« Параметры справа от результатов », отметьте « показать это действие, когда рабочий процесс "
+0

Это масштабирует изображения по их самой длинной стороне, что не решает проблему. – mattaningram

Смежные вопросы