Проблем с рязане на изображение.

FestarBG

Registered
Здравейте,
имам картинки с големина 282х282.Трябва ми да направя от тях малки картинки 121х172.Ето какво измислих:
4a443936e4a04a9e.jpg


Така първо създавам голямата картинка (която е със същото ratio : 121/172 = 198 / 282).Проблема е че немога да го направя.Ето моя код:

$targ_w = 198;
$targ_h = 282;
$source_w = 282;
$source_h = 282;
$img_r = $imagecreate($picture);
$dst_r = imagecreatetruecolor($targ_w, $targ_h);
imagecopyresampled($dst_r, $img_r, 0, 0, 42, 0, $targ_w, $targ_h, $source_w, $source_h);

Сложил съм 42 като dst_x, тоест да започва от 42-рия пиксел, но картинките се деформират.Не само че не са с правилно ratio (разтегление са), ами и има черно поле точно 42 пиксела широко.Ето 1 примерна, която ми се получава:
9ad6db0ed45a3b6f.jpg

a72c13f528fe1102.jpg
 
Това с нищо не ми помогна.Там примерите са със създаване на thumbnail, а на мен ми трябва с изрязване от определена точка.

:roll:
 
Защо не използваш Imagemagick. много по сладко е. аз на него съм правил едва ли не online photoshop ;d с него най лесно се бачка и ддз, къде къде по добър е от всички други функции за изображения.
ето прост код за долу горе това което искаш
Код:
$file=$_FILES[$upload_name]['tmp_name'];
$b=$save_path.$pid.".jpg";	
$s=$save_path.$pid."_s.jpg";	
@move_uploaded_file($file,$b);
exec("convert $b -thumbnail '100x' +repage $s");

а съчено с jquery определено можеш да правиш каквото си поискаш
а на тебе ти трябва това
Код:
exec("convert $img -crop $size+$x1+$y1 $img");

където Img - файла, size=170x100 - размера ти, x1,y1 - от къде да започне да режи
 
FestarBG каза:
$targ_w = 198;
$targ_h = 282;
$source_w = 282;
$source_h = 282;
$img_r = $imagecreate($picture);
$dst_r = imagecreatetruecolor($targ_w, $targ_h);
imagecopyresampled($dst_r, $img_r, 0, 0, 42, 0, $targ_w + 42, $targ_h, $source_w, $source_h);
Или иначе казано, оцветеното в червено трябва да ти е
ширината - 42px
 

Back
Горе