XoJlMc
@XoJlMc

Массовый ресайзинг картинок?

Есть огромное количество картинок с одинаковым разрешением. Требуется ресайзинг этих картинок в меньшее, но тоже одинаковое разрешение. Подскажите, чем это лучше сделать? Заранее спасибо
  • Вопрос задан
  • 3398 просмотров
Пригласить эксперта
Ответы на вопрос 13
sledopit
@sledopit
Если в linux'e/*bsd, то можно воспользоваться пакетом imagemagick. Получится нечто в духе:
for IMAGE in *jpg ; do convert $IMAGE -resize 100x100 ${IMAGE/.jpg/}_small.jpg ; done
Ответ написан
@s0rr0w
Если процесс не нужно автоматизировать, можете попробовать бесплатную программу Faststone image viewer
www.faststone.org/
Ответ написан
Комментировать
Kindman
@Kindman
Можно так:
<?php
function image_resize($src, $dst, $width, $height, $crop=0)
    {
    if(!list($w, $h) = getimagesize($src))
      return false;// "Unsupported picture type!";
    $type = strtolower(substr(strrchr($src,"."),1));
    if($type == 'jpeg') $type = 'jpg';
  switch($type)
  {
  case 'bmp': $img = imagecreatefromwbmp($src); break;
  case 'gif': $img = imagecreatefromgif($src); break;
  case 'jpg': $img = imagecreatefromjpeg($src); break;
  case 'png': $img = imagecreatefrompng($src); break;
  default : return false; // "Unsupported picture type!"
  }
    // resize
    if($crop)
      {
      if($w < $width or $h < $height)
        return false; // "Picture is too small!"
      $ratio = max($width/$w, $height/$h);
      $h = $height / $ratio;
      $x = ($w - $width / $ratio) / 2;
      $w = $width / $ratio;
      } else {
      if($w < $width and $h < $height)
        return false // "Picture is too small!"
      $ratio = min($width/$w, $height/$h);
      $width = $w * $ratio;
      $height = $h * $ratio;
      $x = 0;
      }
    $new = imagecreatetruecolor($width, $height);
    // preserve transparency
    if($type == "gif" or $type == "png")
      {
      imagecolortransparent($new,
       imagecolorallocatealpha($new, 0, 0, 0, 127));
      imagealphablending($new, false);
      imagesavealpha($new, true);
      }
    imagecopyresampled($new, $img, 0, 0, $x, 0, $width, $height, $w, $h);
  switch($type)
  {
  case 'bmp': imagewbmp($new, $dst); break;
  case 'gif': imagegif($new, $dst); break;
  case 'jpg': imagejpeg($new, $dst); break;
  case 'png': imagepng($new, $dst); break;
  }
    return true;
    }
Ответ написан
TheAlien
@TheAlien
Если винда:
Пользуюсь XnView. Там тоже есть пакетная обработка с кучей настроек.
Ответ написан
Taxup
@Taxup
не надо никакие тяжеловесы. под винду есть прекрасная утилита Resize Pictures от самой Microsoft. Встраивается в контекстное меню.
Ответ написан
Комментировать
@antivir
Если нужно для Windows, то программ куча:

Бесплатная-
PIXresizer

Платные-
Light Image Resizer
Batch Image Resizer
Picture Resize Genius
Ответ написан
ryzhyy
@ryzhyy
Могу посоветовать неплохую программу под Макинтош. Называется Resize. Один минус, начиная с OS X Lion (10.7) она не поддерживается.

Как использовать:

1. Откройте программу;
2. Выберите папку с картинками;
3. Задайте разрешение;
4. Запустите процесс и ждите результата.

Так же вы можете воспользоваться онлайн сервисами, либо родным iPhoto. Но для массового ресайзинга все же советую использовать программу Resize.
Ответ написан
Комментировать
ArtemSmirnov
@ArtemSmirnov
Ответ написан
Комментировать
hybridcattt
@hybridcattt
Ответ написан
Комментировать
ACDSee умеет
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
irfan view умеет ресайзить по куче параметров, + водяные знаки и миллион других плюшек, функция называется batch.
Ответ написан
Комментировать
newpdv
@newpdv
Web-devekioer
Попробуй бесплатный IrfanView.
Там есть специальный инструмент с достаточно гибкими настройками как ресайза, так и ренейма.
image
Если что File -> Batch Conversion/Rename
Ответ написан
Комментировать
StaDi
@StaDi
Курьер в it отделе
В фотошопе есть подобный инструмент
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы