У меня есть папка, полная альбомных и портретных фотографий продукта (2000 г.), и мне нужно разместить их все на квадратном холсте. Я знаю, что могу использовать экшены Photoshop, чтобы сделать это в пакетном режиме, но я не знаю, какой метод я мог бы использовать для этого.
До сих пор я сталкивался с проблемами, что некоторые изображения имеют разный размер, поэтому я не могу просто изменить холст изображения на определенный размер, также я не знаю, как справиться с тем фактом, что некоторые изображения имеют другую ориентацию, чем другие.
Как можно было бы автоматизировать эту задачу с помощью программного обеспечения для редактирования фотографий? У меня есть Фотошоп, Пикаса и др.
В Photoshop вы можете использовать Image Processor Pro ( ссылка - прокрутите страницу до половины ) для обработки изображений, которые изменят размер ваших фотографий до определенного размера при сохранении соотношения сторон. Вы можете запустить действие для обрезки (иначе - уменьшить размер холста), но, как сказал @Rob, если вы не знаете, где находится объект, как вы можете группировать фотографии и обрезать их? Возможно, вам придется сделать это вручную. Я не знаю, смогут ли другие программы добиться того, что вы ищете, но попробуйте Image Processor Pro , так как в нем есть несколько хороших инструментов для пакетной обработки фотографий.
Превосходный бесплатный продукт www.irfanview.com прекрасно справится с этой задачей.
Он имеет пакетный режим (клавиша B), а кнопка «Дополнительные параметры» позволяет вам обрезать / изменять размер до любого размера и соотношения сторон, со многими параметрами, касающимися того, как это рассчитывается и т. Д.
Если вы хотите использовать Java, вот код, который я использовал, чтобы сделать изображения квадратными. После этого вы можете легко разместить их на квадратном холсте фиксированного размера с помощью фотошопа.
BufferedImage image = ImageIO.read(IMAGEPATH);
int w = image.getWidth();
int h = image.getHeight();
BufferedImage square= new BufferedImage(Math.max(w,h),Math.max(w,h),BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) combined.getGraphics();
g.drawImage(image, (Math.max(w,h)-w+1)/2, (Math.max(w,h)-h+1)/2, null);
// Save as new image
String fileName=image.getName();
ImageIO.write(combined, "PNG", new File(path, fileName.replace("jpg","png")));
Я бы разделил пейзажные и портретные изображения и создал отдельный пакетный файл для каждой группы.
Все горизонтальные ширины ландшафтного изображения будут скорректированы до необходимой ширины, затем высота будет изменена на такую же, как и ширина. Таким образом, если все они должны быть квадратными размером 1000 пикселей, то нажатие кнопки «Воспроизвести» должно сократить ширину изображения , тогда высота холста будет установлена на высоту 1000 пикселей (добавление пробелов сверху и снизу).
Затем вы должны объединить все портретные изображения таким же образом, но отрегулировав высоту изображения до 1000 пикселей и ширину холста до 1000 пикселей (добавив пробелы слева и справа).
Вот как я делаю это для своего интернет-магазина
Как подготовить картинку для магнето: с помощью xnconvert:
Сделанный... ;-)
Итай
Роб
TFD
джриста
Роджер
Роб