Сайт фотоэффектов на основе php

Я хочу знать, как построены такие сайты, как http://photofunia.com/ и другие сайты онлайн-фотоэффектов. Например, используя php, я хочу объединить два изображения frame.png с profile.jpg. Я хочу, чтобы мой frame.png был прозрачным в центре, где я бы разместил свой profile.jpg.

Я пробовал это, но он не работает:

<?php $dest = imagecreatefromjpeg('dest.jpg'); $src = imagecreatefrompng('logo.png'); $src = imagerotate($src, 90, imageColorAllocateAlpha($src, 0, 0, 0, 127)); $almostblack = imagecolorallocate($src,254,254,254); $src = imagecolortransparent($src,$almostblack); imagealphablending($dest, true); imagesavealpha($dest, 0); imagecopymerge($dest, $src, 900,600, 1, 1, 90,90, 90); 

Заранее спасибо. Пожалуйста, помогите мне.

Solutions Collecting From Web of "Сайт фотоэффектов на основе php"

Вы получили более технический ответ, поэтому я собираюсь сосредоточиться на творческом аспекте вещей. Вы также упомянули знакомство с связанными php библиотеками и даже с предыдущими попытками создать похожие композиции, которые в конце концов не хватали блеска.

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

Честно говоря, такие подробные результаты не достижимы с помощью API. Для этого проекта потребуются часы ручной работы и редактирования. Обращаем внимание на освещение, прозрачность и цвета.

Наиболее впечатляющими эффектами являются те, где объекты на фотографии перекрывают добавленный пользователем образ. То есть:

введите описание изображения здесь

Хотя этот пример довольно прост, та же логика относится к более сложным композициям.

  1. Вам нужно начать с изображения с высоким разрешением. Особенно, если вы будете предлагать физические отпечатки своим пользователям.
  2. Высокое разрешение также необходимо, так как вам придется редактировать и готовить их в программе, например, Photoshop.
  3. Для достижения наилучших результатов для Photoshop потребуются сложные, сложные маски. Подумайте о резких и плавных альфа-переходах. Не просто вырезать все жесткими линиями.

При рассмотрении приведенного выше примера вы можете уйти с одним слоем в Photoshop. Просто вырежьте отверстие, где фотографии будут размещены и экспортированы как png .

В других примерах я бы рекомендовал отдельные фоновые и передние слои с добавленным пользователем изображением, расположенным между ними.

введите описание изображения здесь

Это еще один замечательный пример, когда разрешение имеет первостепенное значение. Листья слишком малы, чтобы эффективно маскироваться с крошечным разрешением. Некоторые листья также могут быть размыты и не в фокусе; опять же, не разрезайте их жесткими линиями. Для достижения наилучших результатов используйте мягкую кисть, маскируя их в Photoshop.

И последнее, но не менее важное: вот очень простой практический пример.

введите описание изображения здесь

Обратите внимание, как фоновое изображение имеет гладкую маску, в то время как лист имеет жесткий. Честно говоря, части листа не в фокусе и могут быть дополнительно уточнены. Вложение времени, которое вы сделаете здесь, сделает мир разницей в том, насколько убедительны ваши окончательные результаты.

Сохраните каждый слой как png и составной в php . Я бы рекомендовал убедиться, что каждый png имеет одинаковое измерение. Не пытайтесь расположить крошечный png над большим. Дайте им одинаковые размеры, чтобы сделать выравнивание легким.

Отвечая на ваши вопросы:

  1. Для этого Adobe не предоставляет API. Однако вы можете использовать Adobe Creative SDK для своих материалов для редактирования фотографий.

  2. Обычно используется множество библиотек Javascript. вы можете проверять библиотеки обработки изображений в кодеге

  3. Если вы настаиваете на использовании php, лучше всего пойти с ImageMagick или с помощью библиотеки GD для обработки изображений . Именно разработчик должен сделать эти результаты «идеальными», как вы это называете. Есть некоторые интересные библиотеки редактирования изображений php, которые вы можете проверить, многие из которых поддерживаются до настоящего времени!

  4. Для слияния изображений вы можете перейти к официальным документам для imagecopymerge или, возможно, использовать библиотеку Imagick / GD. Этот пост SO может дать вам головной убор.

Вы также можете использовать Gmagick, который является вилкой ImageMagick и быстрее (см. Тест ) при обработке изображений (хотя ценой меньших функций). Оригинальный проект можно найти в graphicsmagick . Идя строго по Php, лично, я бы рекомендовал ImageMagick с учетом его скорости, богатого набора функций, популярности, поддержки, документации и примеров.

Дополнительная ссылка:

  • Обработка изображений Php
  • GD против ImageMagick против Gmagick

Если бы я понял вопрос, тогда ему не нужно быть js, Css сделает трюк. Посмотрите на альфа и непрозрачность и z-index

 #img1{position:absolute;top:0px;} #img2{position:absolute;top:50px;opacity:.6;} 
 <img src="http://lorempixel.com/400/200/sports/1" id="img1"> <img src="http://lorempixel.com/50/50/sports/2" id="img2">