Изменение размера изображения (CROP)

Magnat

Guest
Изменение размера изображения (CROP)

Такое гд млжет делать?? Или это только мэйджик на кроп способен???

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

Да и ещё... Нужно учесть, что впринцепе исходники изображений будут приметно определены от X по ширине и Y по высоте, и X > Y. Вот начальные условия...

Срочно нужно... Помогите
 

jrip

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

тогда можно же через gd ImageCopyResized() вроде.
на входе имеем начальные $x и $y.
вычисляем соотношение, к примеру $k.
Потом к примеру берём $newx=100(или сколько нужно).
$newy получаем через соотношение $k.

Но конечно в таком случае картинки не будут полностью одинаковыми, т. е. либо ширина, либо высота у них будут всёже разные, но иначе - имхо это только обрезать.
 

Magnat

Guest
дык обрезать тоже не красиво будет однако... :(
 

Magnat

Guest
Long

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

-~{}~ 17.05.05 04:29:

хм.... этот ресайз изменяет картинку.... и накладывает её на чистый холст.... Некатит.. это ещё хуже чем обыный ресайз картинки.. :))
 

jrip

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

з.ы.
с ImageCopyResized() я, конечно, глюкнул :)
 

Magnat

Guest
Фанат

нет. Просто реализация - примерно...
 

Serguitar

Новичок->продвинутый
Magnat
Примерно тебе уже всё рассказали. Ни один вариант тебя не устраивает. Сделаешь по своему - не забудь заглянуть и с народом поделиться как ты это дело замутил.
 

chisto_tolyan

Враг народа
Вот ета хрень делает предпросмотры к фотогалерее. Пытаеться все картинки привести к одному виду. Лучше всего работает с картинками, где Х больше У

Код:
$img  = imagecreatefromjpeg($userfile);
  $oldX = imageSX($img);
  $oldY = imageSY($img);

  $newX = 300;
  $newY = 225;
  $k    = $oldX/$newX;
  $kY   = $oldY/$newY;

  if($oldX > $newX){
  $newY = $oldY/$k;
  }else{
  $newY = $oldY;
  $newX = $oldX;
  }

  if($newX < 300 && $newY>225){
   $newY = $oldY/$k;
  }


  $img_prev=ImageCreateTrueColor($newX,$newY);
  imagecopyresized($img_prev,$img,0,0,0,0,$newX,$newY,$oldX,$oldY);
 
Сверху