Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание уменьшенного изображения
 
 автор: Mookapek   (26.05.2010 в 02:28)   письмо автору
 
 

Необходимо создать функцию, которая создавала бы уменьшенную копию загружаемого изображения. Например, в параметрах функции указываем максимальные размеры по ширине и длине изображения, и функция сжимает картинку с учетом пропорций. Допустим, максимум 300px по ширине и длине, картинку с размерами 400 на 600 прогоняем через функцию, получаем картинку 200 на 300. Не хочется создавать велосипед, может у кого-нибудь есть что-то подобное?

  Ответить  
 
 автор: Gubichev   (26.05.2010 в 02:58)   письмо автору
 
   для: Mookapek   (26.05.2010 в 02:28)
 

<?php
if(!isset($_POST['send']))
{
    echo 
"<form action=res.php method=post enctype=multipart/form-data><input type=file name=file><input type=submit name=send></form>";
}
else
{
    
$savedir="foto/";//директория куды сохраняем миникопию
    
$file=$_FILES['file']['tmp_name'];//файл
    
$file_name=$_FILES['file']['name'];
    
$max=300;//максимальная длина/ширина
    
if(stristr($file_name,".")==".jpg" || stristr($file_name,".")==".JPG")
    {
        
$size=getimagesize($file);
        
$w=$size[0];
        
$h=$size[1];
        if(
$w>$max || $h>$max)
        {
            if(
$w>$h) {$koef=$w/$h$w=$max$h=$max/$koef;}
            if(
$h>$w) {$koef=$h/$w$h=$max$w=$max/$koef;}
            
$old=imagecreatefromjpeg($file);
            
$new=imagecreatetruecolor($w,$h);
            
imagecopyresampled($new,$old,0,0,0,0,$w,$h,$size[0],$size[1]);
            
imagejpeg($new,$savedir.$file_name,75);
            
imagedestroy($old);
            
imagedestroy($new);        
        }
    }
}
?>

  Ответить  
 
 автор: Ури Геллер   (26.05.2010 в 15:48)   письмо автору
 
   для: Gubichev   (26.05.2010 в 02:58)
 

Из раннего

<?php

session_start
();
require 
"config.php";
require 
"lang.php";
$keywords "";
$description "";
$heading $txt[8];
$nav "<a href=\"index.php\">$txt[16]</a> / <a href=\"admin.php\">$txt[17]</a> / <a href=\"add_entry.php\">$txt[8]</a>";
$action $_SERVER["PHP_SELF"];
$entry_heading "";
$entry_keywords "";
$entry_description "";
$entry_body "";
if (isset(
$_SESSION["img"])) {
    
$src "img.php";
}
else {
    
$src "templates/style/images/noimg.png";
}
if (!empty(
$_POST)) {
    
$array array_map("trim"$_POST);
    if (
get_magic_quotes_gpc() == 1) { $array array_map("stripslashes"$array); }
    
$array array_map("sqlite_escape_string"$_POST);
    
// print_r($array);
    
if (strlen($array["entry_heading"]) > and strlen($array["entry_description"]) > and strlen($array["entry_body"]) > 3) {
        if (isset(
$_SESSION["img"])) {
            
$imgfname $_SESSION["img"]["name"];
            
$tmpfname "tmp/".time();
            
$f fopen($tmpfname"w+b");
            
fwrite($f$_SESSION["img"]["data"]);
            
fclose($f);
            if(
$_SESSION["img"]["type"] == "image/gif") {
                
$func "imagecreatefromgif";
            }
            else if (
$_SESSION["img"]["type"] == "image/jpeg") {
                
$func "imagecreatefromjpeg";
            }
            else if(
$_SESSION["img"]["type"] == "image/png") {
                
$func "imagecreatefrompng";
            }
            
$w $h 100;
            
$res $func($tmpfname);
            
$img imagecreatetruecolor($w$h);
            
imagecopyresized($img$res0000$w$himagesx($res), imagesy($res)) or die("Ошибка в строке номер: ".__LINE__);
            
imagejpeg($img"images/small_$imgfname");
            
imagedestroy($img);
            
copy($tmpfname"images/full_$imgfname");
            
unlink($tmpfname);
            unset(
$_SESSION["img"]);
        }
        else {
            
$imgfname "0";
        }
        
$sql "INSERT INTO entries VALUES(NULL, {$array["catid"]}, ".time().", '{$array["entry_heading"]}', '{$array["entry_keywords"]}', '{$array["entry_description"]}', '$imgfname', '{$array["entry_body"]}');";
        
$db->query($sql);
        
header("Location: admin.php");
        die();
    }
}
unset(
$db);
function 
content() {
    global 
$txt$action$entry_heading$entry_keywords$entry_description$entry_body$src;
    require 
"templates/form.php";
}
require 
"templates/template.php";

?>

  Ответить  
 
 автор: Mookapek   (27.05.2010 в 22:30)   письмо автору
 
   для: Gubichev   (26.05.2010 в 02:58)
 

Зачем еще и вот это stristr($file_name,".")==".JPG"? Ведь stristr не зависит от регистра?

  Ответить  
 
 автор: sim5   (26.05.2010 в 02:59)   письмо автору
 
   для: Mookapek   (26.05.2010 в 02:28)
 

Проблемы узнать отношение сторон и по большей стороне высчитать?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования