Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Помогите найти class для оброботки.... |

03.06.2010, 13:18
|
|
Участник форума
Регистрация: 08.11.2006
Сообщений: 113
Провел на форуме: 184002
Репутация:
3
|
|
Помогите найти class для оброботки....
Посоветуйте класс для обработки картинок так что бы все обрабатывал расширения((jpeg,jpe,jpg),gif).Обра атывал масштаб картинок и можно было накладывать на них другие картинки. И что бы он не сильно тяжелый был! Заранее СПС
|
|
|

04.06.2010, 11:13
|
|
Новичок
Регистрация: 10.04.2010
Сообщений: 6
Провел на форуме: 9423
Репутация:
5
|
|
Класс из DLE вполне удобный.
PHP код:
class thumbnail {
var $img;
var $watermark_image_light;
var $watermark_image_dark;
function thumbnail($imgfile) {
//detect image format
$info = @getimagesize($imgfile);
if( $info[2] == 2 ) {
$this->img['format'] = "JPEG";
$this->img['src'] = @imagecreatefromjpeg( $imgfile );
} elseif( $info[2] == 3 ) {
$this->img['format'] = "PNG";
$this->img['src'] = @imagecreatefrompng( $imgfile );
} elseif( $info[2] == 1 ) {
$this->img['format'] = "GIF";
$this->img['src'] = @imagecreatefromgif( $imgfile );
} else {
echo "Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!";
@unlink( $imgfile );
exit();
}
if( !$this->img['src'] ) {
echo "Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!";
@unlink( $imgfile );
exit();
}
$this->img['lebar'] = @imagesx( $this->img['src'] );
$this->img['tinggi'] = @imagesy( $this->img['src'] );
$this->img['lebar_thumb'] = $this->img['lebar'];
$this->img['tinggi_thumb'] = $this->img['tinggi'];
//default quality jpeg
$this->img['quality'] = 90;
}
function size_auto($size = 100, $site = 0) {
global $gd_version;
$site = intval( $site );
if( $this->img['lebar'] <= $size and $this->img['tinggi'] <= $size ) {
$this->img['lebar_thumb'] = $this->img['lebar'];
$this->img['tinggi_thumb'] = $this->img['tinggi'];
return 0;
}
switch ($site) {
case "1" :
if( $this->img['lebar'] <= $size ) {
$this->img['lebar_thumb'] = $this->img['lebar'];
$this->img['tinggi_thumb'] = $this->img['tinggi'];
return 0;
} else {
$this->img['lebar_thumb'] = $size;
$this->img['tinggi_thumb'] = ($this->img['lebar_thumb'] / $this->img['lebar']) * $this->img['tinggi'];
}
break;
case "2" :
if( $this->img['tinggi'] <= $size ) {
$this->img['lebar_thumb'] = $this->img['lebar'];
$this->img['tinggi_thumb'] = $this->img['tinggi'];
return 0;
} else {
$this->img['tinggi_thumb'] = $size;
$this->img['lebar_thumb'] = ($this->img['tinggi_thumb'] / $this->img['tinggi']) * $this->img['lebar'];
}
break;
default :
if( $this->img['lebar'] >= $this->img['tinggi'] ) {
$this->img['lebar_thumb'] = $size;
$this->img['tinggi_thumb'] = ($this->img['lebar_thumb'] / $this->img['lebar']) * $this->img['tinggi'];
} else {
$this->img['tinggi_thumb'] = $size;
$this->img['lebar_thumb'] = ($this->img['tinggi_thumb'] / $this->img['tinggi']) * $this->img['lebar'];
}
break;
}
if( $gd_version == 1 ) {
$this->img['des'] = imagecreate( $this->img['lebar_thumb'], $this->img['tinggi_thumb'] );
@imagecopyresized( $this->img['des'], $this->img['src'], 0, 0, 0, 0, $this->img['lebar_thumb'], $this->img['tinggi_thumb'], $this->img['lebar'], $this->img['tinggi'] );
} elseif( $gd_version == 2 ) {
$this->img['des'] = imagecreatetruecolor( $this->img['lebar_thumb'], $this->img['tinggi_thumb'] );
@imagecopyresampled( $this->img['des'], $this->img['src'], 0, 0, 0, 0, $this->img['lebar_thumb'], $this->img['tinggi_thumb'], $this->img['lebar'], $this->img['tinggi'] );
}
$this->img['src'] = $this->img['des'];
return 1;
}
function jpeg_quality($quality = 90) {
//jpeg quality
$this->img['quality'] = $quality;
}
function save($save = "") {
if( $this->img['format'] == "JPG" || $this->img['format'] == "JPEG" ) {
//JPEG
imagejpeg( $this->img['src'], $save, $this->img['quality'] );
} elseif( $this->img['format'] == "PNG" ) {
//PNG
imagepng( $this->img['src'], $save );
} elseif( $this->img['format'] == "GIF" ) {
//GIF
imagegif( $this->img['src'], $save );
}
imagedestroy( $this->img['src'] );
}
function show() {
if( $this->img['format'] == "JPG" || $this->img['format'] == "JPEG" ) {
//JPEG
imageJPEG( $this->img['src'], "", $this->img['quality'] );
} elseif( $this->img['format'] == "PNG" ) {
//PNG
imagePNG( $this->img['src'] );
} elseif( $this->img['format'] == "GIF" ) {
//GIF
imageGIF( $this->img['src'] );
}
imagedestroy( $this->img['src'] );
}
// *************************************************************************
function insert_watermark($min_image) {
global $config;
$margin = 7;
$this->watermark_image_light = ROOT_DIR . '/templates/' . $config['skin'] . '/dleimages/watermark_light.png';
$this->watermark_image_dark = ROOT_DIR . '/templates/' . $config['skin'] . '/dleimages/watermark_dark.png';
$image_width = imagesx( $this->img['src'] );
$image_height = imagesy( $this->img['src'] );
list ( $watermark_width, $watermark_height ) = getimagesize( $this->watermark_image_light );
$watermark_x = $image_width - $margin - $watermark_width;
$watermark_y = $image_height - $margin - $watermark_height;
$watermark_x2 = $watermark_x + $watermark_width;
$watermark_y2 = $watermark_y + $watermark_height;
if( $watermark_x < 0 or $watermark_y < 0 or $watermark_x2 > $image_width or $watermark_y2 > $image_height or $image_width < $min_image or $image_height < $min_image ) {
return;
}
$test = imagecreatetruecolor( 1, 1 );
imagecopyresampled( $test, $this->img['src'], 0, 0, $watermark_x, $watermark_y, 1, 1, $watermark_width, $watermark_height );
$rgb = imagecolorat( $test, 0, 0 );
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$max = min( $r, $g, $b );
$min = max( $r, $g, $b );
$lightness = ( double ) (($max + $min) / 510.0);
imagedestroy( $test );
$watermark_image = ($lightness < 0.5) ? $this->watermark_image_light : $this->watermark_image_dark;
$watermark = imagecreatefrompng( $watermark_image );
imagealphablending( $this->img['src'], TRUE );
imagealphablending( $watermark, TRUE );
imagecopy( $this->img['src'], $watermark, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height );
imagedestroy( $watermark );
}
}
|
|
|

04.06.2010, 11:16
|
|
Новичок
Регистрация: 10.04.2010
Сообщений: 6
Провел на форуме: 9423
Репутация:
5
|
|
Использование:
include_once ENGINE_DIR . '/classes/thumb.class.php';
$thumb = new thumbnail(картика.расширение); // 1323.jpg
$thumb->size_auto( размер в пиксклях); // 100
$thumb->jpeg_quality( качество ); //10-100
и т.д....
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|