ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   как создать превью отметив определённый учасок изображения (https://forum.antichat.io/showthread.php?t=128699)

Sharky 07.07.2009 16:37

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

Pashkela 07.07.2009 18:08

PHP код:

<?php
// картинка - http://ru.php.net/images/php.gif
/* Вырезаем нужную часть */
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);
imagegif($dest, "php1.gif");
imagedestroy($dest);
imagedestroy($src);
/* Делаем ресайз вырезанной части */
resize("php1.gif", 60, "php2.gif"); // Результат в php2.gif
unlink('php1.gif'); // Удаляем промежуточный результат
echo "Result in php2.gif";
// Функция для ресайза
function resize($img, $thumb_width, $newfilename) 
{ 
  
$max_width=$thumb_width;
  if (!
extension_loaded('gd') && !extension_loaded('gd2')){
        
trigger_error("GD is not loaded", E_USER_WARNING);
        return 
false;
  }
  list(
$width_orig, $height_orig, $image_type) = getimagesize($img);
  switch (
$image_type) {
        case 
1: $im = imagecreatefromgif($img); break;
        case 
2: $im = imagecreatefromjpeg($img);  break;
        case 
3: $im = imagecreatefrompng($img); break;
        default:  
trigger_error('Unsupported filetype!', E_USER_WARNING);  break;
  }
  
$aspect_ratio = (float) $height_orig / $width_orig;
  
$thumb_height = round($thumb_width * $aspect_ratio);
  while(
$thumb_height>$max_width){
        
$thumb_width-=10;
        
$thumb_height = round($thumb_width * $aspect_ratio);
  }
  
$newImg = imagecreatetruecolor($thumb_width, $thumb_height);
  if((
$image_type == 1) OR ($image_type==3)) {
        
imagealphablending($newImg, false);
        
imagesavealpha($newImg,true);
        
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
        
imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);
  }
  
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);
  switch (
$image_type) {
        case 
1: imagegif($newImg,$newfilename); break;
        case 
2: imagejpeg($newImg,$newfilename);  break;
        case 
3: imagepng($newImg,$newfilename); break;
        default:  
trigger_error('Failed resize image!', E_USER_WARNING);  break;
  }
  return 
$newfilename;
}
?>


Andres 07.07.2009 19:46

Цитата:

Сообщение от Sharky
как создать превью отметив определённый учасок изображения

Это типа так? - http://ruseller.com/lessons/les315/example/index.php

Sharky 07.07.2009 20:52

Цитата:

Сообщение от Andres
Это типа так? - http://ruseller.com/lessons/les315/example/index.php

именно

Andres 07.07.2009 21:48

Цитата:

Сообщение от Sharky
именно

Держи вот исходники, и ссылку на урок. Там все просто))

Pashkela 07.07.2009 21:51

очень просто:

1. Создаем такой .html-файл прямо на рабочем столе в винде, назовем его к примеру image.html

где ava1.jpg - наша картинко, поменяйте название на ваше в двух местах в коде. Саму картинку тоже просто положите на рабочий стол

2. Создаем файл jquery.js, тоже прямо на рабочем столе

3. Создаем файл imgareaselect.js - так же прямо на рабочем столе


Усё. Запускаем наш image.html (открываем в браузере) и тащимся:) остальное детали уже

Весь код всех js сюда не влазит:)) Поэтому всё готовое в одном архиве:

скачать

Gar|k 08.07.2009 00:37

я хз почему но у меня эта хрень с большими картинками не канает.

Sharky 09.07.2009 17:44

Цитата:

Сообщение от Gar|k
я хз почему но у меня эта хрень с большими картинками не канает.

попробуй конфиг поправить


ещё попрос...как бы это это реализовать без перезагрузки страницы?


Время: 16:44