Показать сообщение отдельно

  #16346  
Старый 13.06.2010, 22:24
Axel G
Познающий
Регистрация: 28.01.2009
Сообщений: 32
Провел на форуме:
84089

Репутация: 1
По умолчанию

Уфф, что-то я в конец запутался, подогнать никак не получается = (

Выкладываю весь исходный код скрипта [update].

PHP код:
<?php

/*
=======================================================================
| Author: Axel G (14.06.2010)
|----------------------------------------------------------------------
| Special thanks to: Chaak, #Wolf#, wildshaman, roxblnfk, .::f-duck::.
|----------------------------------------------------------------------
| PHP: 5
|----------------------------------------------------------------------
| Coding Standard: PEAR
=======================================================================
*/

function createThumb($name$sourcetype$filename$new_w$new_h
{
    if ((
$sourcetype==".jpg") || ($sourcetype==".jpeg")) {
        
$src_img=imagecreatefromjpeg($name);
    } if (
$sourcetype==".png") {
        
$src_img=imagecreatefrompng($name);
    } if (
$sourcetype==".gif") {
        
$src_img=imagecreatefromgif($name);
    }

    
$thumb_q $_POST['quality_thumb'];

    
$old_x imageSX($src_img);
    
$old_y imageSY($src_img);

    if (
$old_x $old_y) {
        
$thumb_w $new_w;
        
$thumb_h $old_y*($new_h/$old_x);
    }
    if (
$old_x $old_y) {
        
$thumb_w $old_x*($new_w/$old_y);
        
$thumb_h $new_h;
    }
    if (
$old_x == $old_y) {
        
$thumb_w $new_w;
        
$thumb_h $new_h;
    }

    
$dst_img ImageCreateTrueColor($thumb_w,$thumb_h);

    
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);

    if  ((
$sourcetype==".jpg") || ($sourcetype==".jpeg")) {
        
imagejpeg($dst_img,$filename,$thumb_q); 
    } elseif (
$sourcetype==".png") { 
        
imagepng($dst_img,$filename); 
    } elseif  (
$sourcetype==".gif") { 
        
imagegif($dst_img,$filename); 
    }

    
imagedestroy($dst_img);
    
imagedestroy($src_img);
}

// скрипт загрузки

include("config.php");
include(
"header.php");


if (isset(
$_POST['thumb'])) $tsize=intval($_POST['thumb']);
else exit;
if (
$max_th<$tsize || $min_th>$tsize) {
    echo 
"<p align=center><font size=4 color=red>Превью должно быть меньше $max_th, но больше $min_th пикселей !</font></p>";
    include(
"footer.php");
    exit;


if (!isset(
$_FILES['userfile'])) exit;
if (!
is_uploaded_file($_FILES['userfile']['tmp_name'])) exit;

if (
$_FILES['userfile']['size']>$max_size) {
    echo 
"<p align=center>Файл слишком большой!</p>";
    exit;
}

$pictype "";
switch (
strtolower($_FILES['userfile']['type'])) {
case 
"image/jpeg" 
    
$pictype ".jpg"
    break;

case 
"image/pjpeg"
    
$pictype ".jpg"
    break;

case 
"image/gif"  
    
$pictype ".gif"
    break;

case 
"image/png"  
    
$pictype ".png"
    break;

case 
"image/x-png"
    
$pictype ".png"
    break;

default           : 
    
$pictype ""
    break;

}

if (
$pictype != "") {

    do {
    
$uniq=md5(uniqid(rand(),1));
    
$srcfile=$path.$uniq.$pictype;
} while(
file_exists($srcfile));

$res copy($_FILES['userfile']['tmp_name'], $srcfile);

if (!
$res) {
    echo 
"<p align=center>Ошибка копирования файла на сервер!</p>";
    exit;
}

@
chmod($srcfile,0666);
$imgf $path $uniq $pictype;
$thbf $tpath $uniq $pictype;
$urlf $domain $path $uniq $pictype;

/* ###########################################################################################################

// Инфа о картинке Start

$size = getimagesize($urlf); //функция возвращает размер картинки для тега img, т.е [0] - ширина, [1] - высота, [2] - тип изображения, [3] - [0] + [1]

$width = $size[0];
$height = $size[1];
$type = $size['mime'];

function getfs($urlf){  
$headers = get_headers($urlf, 1);  
return round(((int)$headers['Content-Length']/1024), 2); //размер в килобайтах 
}
 
$weight = getfs($urlf);

echo "$width x $height ($weight KB)";

 } 

// Инфа о картинке End


// Start Zoom 

$image = imagecreatefrompng($dst_img); // превью
$watermark = imagecreatefrompng("theme/magnifying_glass.png"); // лупа

$ro=0; //отступ от правого края
$lo=0; //отступ сверху
$w = imagesx($image); //ширина картинки
$h = imagesy($image); //высота картинки
$ww = imagesx($watermark); //ширина лупы
$wh = imagesy($watermark); //высота лупы

imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh); // с наложением все понятно = )

header('Content-type: image/png'); // (отравка хттп-заголовка) имеет ли он смысл в моем коде??
imagepng($image); // вывод, все понятно, т.е. мне надо убрать imagepng и вместо imagecopy  imagecopyresampled поставить, ведь так??

imagedestroy($image); // чистим память (превью) 
imagedestroy($watermark); // чистим память (лупа)

// End Zoom 

########################################################################################################### */

if ($_POST['create_thumb'] == "1") { // продолжаем создание миниатюры

    // накладываем надпись

    
if ($_POST['watermark_thumb'] == "1") { // инфа

    
}

    if (
$_POST['watermark_thumb'] == "2") { // лупа

    
}


    if (
$_POST['watermark_thumb'] == "3") { // без надписи
        
createThumb($imgf$pictype$thbf$tsize$tsize);
        @
chmod($thbf,0666);
        include(
"thumbnail.php");
    }

} else { 
// юзер снял галку, значит
    
include("picture.php");
}

// если неверный формат файла

} else {
    echo 
"<p align=center><font size=4 color=red>Формат файла не распознан!</font></p>";
    include(
"footer.php");
    exit;
}

include(
"footer.php");

?>

Последний раз редактировалось Axel G; 16.06.2010 в 01:55..
 
Ответить с цитированием