Программа для загрузки картинок на хостинги

Программа предназначена для загрузки изображений в Интернет и выкладывания на форумах с миниатюрами или без. Для хранения файлов программа использует несколько десятков общедоступных хостингов изображений и файлов. Среди них такие известные сайты, как Yandex.Fotki, Picasa, flickr.com, imgur.com, Yandex.Disk, Dropbox и многие другие.
Image Uploader.pngscreenshot.jpgImage Uploader.gif

Можно скачать с Оффсайта: http://zenden2k.atwebpages.com/ru/imageuploader

Основные возможности программы:

    Загрузка изображений и файлов в интернет
    Программа позволяет загружать изображения и файлы на множество сайтов (список). Среди них такие известные сайты, как radikal.ru, Yandex.Fotki, Google Picasa WebAlbums, flickr.com, Yandex.Disk. Также можно загружать на FTP сервер.

При этом программа автоматически генерирует миниатюры желаемого размера, масштабирует изображения, по желанию может добавить надпись или водяной знак на изображение. Поддерживаются форматы изображений JPG, PNG, BMP, GIF, TIFF.
После загрузки программа выдает список ссылок или коды HTML или BBCode (для форумов, блогов и т.п.). Ссылки могут быть автоматически скопированы в буфер обмена.

  • Извлечение кадров из видео-файлов
    Программа умеет извлекать заданное количество кадров из видео-файлов форматов AVI, MPG, VOB, WMV, MKV, TS,MOV и многих других. Программа умеет использовать установленные в системе кодеки (рекомендуется использовать K-lite Codec Pack), но если у вас не установлены кодеки и вы не хотите ими засорять систему, программа может использовать библиотеку FFmpeg, которая поставляется вместе с программой (в портативной версии, а при использовании инсталятора нужно отметить соответствующую галочку)
    Полученные кадры можно по отдельности загрузить на сервер, либо скомпоновать в одну картинку-мозаику.
    Функция предназначена в первую очередь для релизеров торрент-трекеров.
  • Получение технических данных о мультимедийных файлах (видео, аудио) с использованием библиотеки MediaInfo
  • Снимок экрана (скриншот)
    Программа умеет делать скриншоты всего экрана или активного окна, или выбранной с помощью мыши области экрана (прямоугольной области, выбранного окна, области произвольной формы).
    Рисовать на скриншоте можно правой клавишей мыши. Чтобы нарисовать вертикальную или горизонтальную линию, удерживайте Shift. Чтобы поменять цвет линии, нажмите среднюю клавишу мыши. Чтобы уменьшить или увеличить толщину линии, нажимайте клавиши «[» и «]» (как в Adobe Photoshop).
  • Редактор снимков (новинка в версии 1.3.1)
    Вы можете быстро отредактировать сделанный скриншот: обрезать, добавить линии, текст, стрелки, размытие, подсветить текст маркером и т.д.
  • Поддержка Drag-n-Drop и буфера обмена
    Просто затащите видео-файл или изображения в главное окно из проводника или другого файл менеджера, или браузера, и программа сможет их обработать.
    Также поддерживается вставка изображений, ссылок из буфера обмена. И наоборот, вы можете перетащить или скопировать файл (или изображение) из окна программы в другую программу.
  • Скачивание изображений из Интернета (по списку URL)
  • Сокращение ссылок
    Программа умеет сокращать ссылки, как для загруженных файлов (после загрузки нужно нажать кнопку Опции и выбрать пункт «Сократить ссылки»), так и просто любую ссылку из буфера обмена
  • Интеграция в проводник Windows
    Программа добавляет в контекстное меню файлов и папок подменю «Image Uploader» (правый клик мыши по файлу), с помощью которого можно быстро загрузить файл на сервер.
  • Поддержка множества акаунтов
    Вы можете использовать сразу несколько аккаунтов на одном и том же сайте.
  • Перезаливка
    Загрука изображений из текста с сохранением исходной разметки.
    Функция может быть полезна релизам торрент-трекеров: часто в описании раздач картинки «умирают», программа поможет вам их восстановить, конечно, если вы первоначально загружали эти картинки с помощью Image Uploader. Для этого по-умолчанию программа сохраняет кадры из видеофайлов в специальной папке.
    Вставьте код с умершими ссылками в окно «Перезаливки», и если эти файлы остались на вашем компьютере, программа заново загрузит картинки на выбранный сервер, а также сгенерирует миниатюры.
    • Системные требования
      Поддерживаемые операционные системы: Windows 2000/XP/Vista/7/8/10 (а также серверные версии)

    Ну и самое востребованное для форумов — это создание красивых миниатюр на выбор при клике на которую открывается полноформатное изображение.

    • Скачать последнюю версию с :Image Uploader

      (инсталлируемая версия с отправкой картинок правой кнопкой из контекстного меню, а так же портативная версия)

    Сегодня я хочу рассказать о реализации довольно популярной задачи. Во-первых, это загрузка изображения на сервер. А во-вторых, это изменение размера изображения. Также рассмотрим поворот и изменение качества.

    Вы не можете сразу загрузить файл в свою папку. Вначале он загружается во временную директорию сервера, а затем обрабатывается с помощью PHP интерпритатора. По окончанию сессии временный файл автоматически удаляется. То есть, мы вначале забрасываем файл во временную папку, а затем перекладываем в нужную.

    $_FILES это массив загруженных файлов. Он имеет параметры (на примере файла picture):

    $_FILES[‘ picture ‘][‘name’] – настоящее имя файла. Например: image.jpg.

    Бесплатный курс по PHP программированию

    Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

    В курсе 39 уроков | 15 часов видео | исходники для каждого урока

    $_FILES[‘ picture ‘][‘size’] – размер файла в байтах.

    $_FILES[‘ picture ‘][‘type’] – MIME-тип загруженного файла. Например: image/gif, image/png, image/jpeg.

    $_FILES[‘ picture ‘][‘tmp_name’] – содержит имя файла во временном каталоге, например: /tmp/phpV3b3qY. Именно этот параметр и используется для перемещения файлов после загрузки.

    $_FILES[‘ picture ‘][‘error’] – код ошибки.

    Для начала нам нужна форма для загрузки. Возьмём простейшую форму.

    Параметр enctype=»multipart/form-data» обязателен для такой формы. Тег отвечает за поле для ввода имени файла, который загружается на сервер.

    Также нам потребуется обработчик события – загрузки файла. Вначале у нас будет одна настройка – путь сохранения изображения. Можно указывать как прямой, так и относительный путь. В случае POST запроса обработчик попробует осуществить загрузку файла по указанному пути. Скрипт сообщит о результате загрузки – удачна она или нет.

    Функция copy, как вы наверно догадались, отвечает за копирование файла из одного место в другое. Мы копируем файл из временной папки сервера в нужную, сохранив имя файла.

    Договоримся, что и форма и её обработчик будут находиться в одном файле – upload.php.

    Итого имеем простой, но рабочий скрипт. Его можно забросить на хостинг, создать папку i и потренироваться с загрузкой файлов.

    Любая форма представляет для сайта опасность. И особенно форма загрузки файлов. Злоумышленник может загрузить скрипт и выполнить его на сервере. Поэтому необходимо озаботиться безопасностью.

    Самые простые и обязательные проверки – на размер и тип файла. Для этого укажем допустимые типы и размер.

    Тип файла укажем в виде массива:

    Проверяем тип файла. В случае недопустимого типа прекращаем работу скрипта и выводим соответствующее уведомление. Функция in_array проверяет присутствие значения в массиве.

    Проверяем размер файла. В случае недопустимого размера прекращаем работу скрипта и выводим соответствующее уведомление.

    Итого получаем такой скрипт. Скрипт рабочий, можно баловаться. Немного забегая вперёд, добавим также параметр $tmp_path – путь к папке временных файлов.

    Приступим к самому интересному, а именно изменению размеров изображения с помощью PHP. Для этого напишем функцию resize. Сделаем также возможным изменять качество изображения и поворачивать его.

    Размер изображения будем подставлять исходя из параметра. Это будет либо эскиз ($type = 1), либо большое изображение ($type = 2).

    Итак, шапка функции у нас получилась такая:

    По умолчанию подставляем размеры эскиза, а поворот и качество по умолчанию не используются. Пойдём дальше.

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

    Устанавливаем качество изображения по умолчанию (при $quality = null) равным 75%.

    Далее создаём изображение для дальнейших преобразований. Для создания используем функцию в зависимости от типа файла (jpg, png или gif). Функции создания называются очень лаконично imagecreatefrom + тип файла.

    Если указан параметр $rotate, выполняем поворот изображения. Делаем это с помощью функции rotate(), параметрами которой являются: изображение, градусы, фон изображения для закрашивания пустых областей, образованных при повороте. Для того чтобы пустые области не возникали, поворачиваем изображение на угол в 90, 180, 270 градусов.

    Бесплатный курс по PHP программированию

    Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

    В курсе 39 уроков | 15 часов видео | исходники для каждого урока

    Далее определяем высоту и ширину изображения с помощью функций imagesx и imagesy.

    В зависимости от типа (эскиз или большое изображение) устанавливаем ограничение по ширине.

    Далее, если ширина изображения больше максимальной, проводим преобразования. Иначе просто сохраняем изображение и очищаем память. Сохраняем изображение с помощью функции imagejpeg. В данном примере, рассмотрено сохранение только в формате jpg, однако функционал всегда можно расширить. Удаляем изображения из памяти с помощью функции imagedestroy.

    В качестве результата работы функции возвращаем имя файла. Оно нам ещё понадобится.

    Вернёмся к преобразованию. Вначале вычисляем пропорции изображения и размеры преобразованного изображения.

    Далее создаём пустую картинку (функция imagecreatetruecolor) с шириной и высотой, полученными на прошлом шаге.

    И копируем исходное изображение ($src) в только что созданное ($dest), изменяя его размеры. Функция imagecopyresampled делает это с пересэмплированием, что улучшает качество.

    И наконец, сохраняем полученное изображение и очищаем память.

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

    Отвечу заранее на вопрос «Почему мы не можем сразу положить изменённый файл в конечную папку?». Можем. Однако не делаем для увеличения глубины абстракции, то есть, чтобы придать определённую универсальность функции. Вы же сможете её использовать на разных сайтах.

    Совсем забыл. Добавляем в начало функции строку:

    Она обозначает, что в функции будет использована глобальная переменная $tmp_path – путь к временной папке.

    Функцию нужно вызывать сразу после проверок. А также следует изменить ту часть скрипта, где мы копируем изображение в конечную папку. Вы ведь теперь работаем с новым изображением. Теперь схема загрузки такова: компьютер → временная папка сервера → наша временная папка → конечная папка. То есть, добавился ещё один промежуточный пункт.

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

    В таком случае вызов функции будет такой:

    И наконец, конечный результат.

    Слишком большой размер файла. Попробовать другой файл?

    Естественно, рассмотренный пример учебный. Однако он вполне рабочий. Что вы можете попробовать, забросив скрипт на сервер и создав папки для изображений и временных файлов. Скрипт можно бесконечно дорабатывать, изменять уровень абстракции, добавлять условия и параметры, преобразования, проверки, накладывать «водяной знак».

    Идеальный вариант – осмыслить и допилить до своих требований.

    Конечно, задание проверять никто не будет. Однако я рекомендую его выполнить для себя. Ведь программирование – это, прежде всего, практика. Итак:

    Вынесите размеры эскиза ($max_thumb_size) и большого изображения ($max_size) из функции в настройки файла.

    Попробуйте задавать их в параметрах функции. Это значительно повысит уровень абстракции.

    Проработайте вариант, когда изображение ограничивается по большей стороне, а не только по ширине.

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

    Попробуйте генерировать и эскиз и большой файл за одну загрузку.

    Попробуйте наложить «водяной знак».

    Используя бонусный код, добавьте в функцию возможность создания квадратных файлов. Добавьте в форму выбор типа обрезки – квадратная или пропорциональная.