PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
leonellus
Отправлено: 06 Января, 2015 - 22:31:31
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Я уже несколько месяцев мучаюсь, не получается изменить размер загружаемого файла. Ну хоть ты убейся об стену и все. Помогите люди добрые, желательно как для чайников - с комментариями к каждой строке. Я новичок в PHP
PHP:
скопировать код в буфер обмена
<?
$uploaddir = '../test/' ;
$forma = '.jpg' ;
$filename = "$apend $forma " ;
$uploadfile = "$uploaddir $apend $forma " ;
$NewWidth = 450 ;
$NewHeight = 360 ;
$ratio_org = $width / $height ;
if ( $width / $height > $ratio_orig )
{
$NewWidth = $height * $ratio_orig ;
}
elseif ( $height / $width > $ratio_orig )
{
$NewHeight = $width / $ratio_orig ;
}
?>
P.S. Поиском пользовался. Перебрал кучу готовых скриптов, но так ничего не получилось.
P.S.S. Насчет Watermark'a - я даже не понял как это делается. Если не сложно, объясните как он делается(Отредактировано автором: 06 Января, 2015 - 22:40:47)
3d_killer
Отправлено: 10 Января, 2015 - 19:04:53
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011
Откуда: Ростов-на-Дону
Помог: 21 раз(а)
PHP:
скопировать код в буфер обмена
/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
$src - имя исходного файла
$dest - имя генерируемого файла
$width, $height - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
$rgb - цвет фона, по умолчанию - белый
$quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize( $src , $dest , $width , $height , $rgb = 0xFFFFFF, $quality = 100)
{
return false ;
if ( $size === false )
return false ;
$icfunc = 'imagecreatefrom' . $format ;
return false ;
$x_ratio = $width / $size [ 0] ;
$y_ratio = $height / $size [ 1] ;
if ( $height == 0)
{
$y_ratio = $x_ratio ;
$height = $y_ratio * $size [ 1] ;
}
elseif ( $width == 0)
{
$x_ratio = $y_ratio ;
$width = $x_ratio * $size [ 0] ;
}
$ratio = min ( $x_ratio , $y_ratio ) ; $use_x_ratio = ( $x_ratio == $ratio ) ;
$new_width = $use_x_ratio ?
$width : floor ( $size [ 0
] * $ratio ) ; $new_height = ! $use_x_ratio ?
$height : floor ( $size [ 1
] * $ratio ) ; $new_left = $use_x_ratio ? 0
: floor ( ( $width - $new_width ) / 2
) ; $new_top = ! $use_x_ratio ? 0
: floor ( ( $height - $new_height ) / 2
) ;
// если не нужно увеличивать маленькую картинку до указанного размера
// if ($size[0]<$new_width && $size[1]<$new_height)
// {
// $width = $new_width = $size[0];
// $height = $new_height = $size[1];
// }
$isrc = $icfunc ( $src ) ;
//imagefilter($isrc, IMG_FILTER_GRAYSCALE);
//imagefilter($isrc, IMG_FILTER_BRIGHTNESS, 100);
imagecopyresampled ( $idest , $isrc , $new_left , $new_top , 0
, 0
, $new_width , $new_height , $size [ 0
] , $size [ 1
] ) ;
if ( ! $i ) return '' ;
switch ( $ext )
{
case 'jpeg' :
case 'jpg' :
break ;
case 'gif' :
break ;
case 'png' :
break ;
}
return true ;
}
(Добавление)
PHP:
скопировать код в буфер обмена
//Ставим водяной знак
function watermark( $img_o , $type , $watermark_o )
{
//Наложим водяной знак на большую картинку
$func = 'imagecreatefrom' . $type ;
$img = $func ( $img_o ) ;
$func2 = 'image' . $type ;
//if ($img_width>80 && $img_height> 30) {$watermark = imagecreatefrompng('../../../img/watermark_75x10.png');$inst_watermark=true;}
// Сохраняем прозрачность
if ( $type == 'png' ) {
}
// получаем значения высоты и ширины водяного знака
$watermark_width = imagesx ( $watermark ) ; $watermark_height = imagesy ( $watermark ) ; // Координаты, куда помещать водяной знак
$dest_x = $img_width - $watermark_width - 5 ;
$dest_y = $img_height - $watermark_height - 40 ;
//добавляем водяной знак
if ( $dest_x > 0 && $dest_y > 0)
{
imagecopy ( $img , $watermark , $dest_x , $dest_y , 0
, 0
, $watermark_width , $watermark_height ) ; $func2 ( $img , $img_o ) ;
}
//Конец добавления водяного зняка для большого файла
}
(Добавление)
PHP:
скопировать код в буфер обмена
//Функция ресайза
function cutImage( $source , $required_width , $required_height , $output , $valign = 'center' , $halign = 'center' ) {
switch ( $imageType ) {
case "image/gif" :
$type_img = 'gif' ;
break ;
case "image/pjpeg" :
case "image/jpeg" :
case "image/jpg" :
$type_img = 'jpg' ;
break ;
case "image/png" :
case "image/x-png" :
$type_img = 'png' ;
break ;
}
//соотношение сторон оригинала
$original_ratio = $original_height / $original_width ;
//соотношение сторон необходимое
$required_ratio = $required_height / $required_width ;
if ( $original_ratio > $required_ratio ) {
$resized_ratio = $original_width / $required_width ;
$new_width = $required_width ;
$new_height = $original_height / $resized_ratio ;
$src_x = 0 ;
if ( $valign == 'center' ) {
$src_y = ( $new_height - $required_height ) / 2 ;
} elseif ( $valign == 'top' ) {
$src_y = 0 ;
} else {
$src_y = $new_height - $required_height ;
}
} else {
$resized_ratio = $original_height / $required_height ;
$new_height = $required_height ;
$new_width = $original_width / $resized_ratio ;
if ( $halign == 'center' ) {
$src_x = ( $new_width - $required_width ) / 2 ;
} elseif ( $halign == 'left' ) {
$src_x = 0 ;
} else {
$src_x = $new_width - $required_width ;
}
$src_y = 0 ;
}
imagecopyresampled ( $resized_src , $src , 0
, 0
, 0
, 0
, $new_width , $new_height , $original_width , $original_height ) ;
if ( $type_img == 'png' ) {
}
imagecopyresampled ( $dst , $resized_src , 0
, 0
, $src_x , $src_y , $required_width , $required_height , $required_width , $required_height ) ; switch ( $imageType ) {
case "image/gif" :
break ;
case "image/png" :
case "image/x-png" :
break ;
default :
}
}
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB