|
|
|
| Необходимо создать функцию, которая создавала бы уменьшенную копию загружаемого изображения. Например, в параметрах функции указываем максимальные размеры по ширине и длине изображения, и функция сжимает картинку с учетом пропорций. Допустим, максимум 300px по ширине и длине, картинку с размерами 400 на 600 прогоняем через функцию, получаем картинку 200 на 300. Не хочется создавать велосипед, может у кого-нибудь есть что-то подобное? | |
|
|
|
|
|
|
|
для: 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);
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: 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"]) > 1 and strlen($array["entry_description"]) > 3 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, $res, 0, 0, 0, 0, $w, $h, imagesx($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";
?>
|
| |
|
|
|
|
|
|
|
для: Gubichev
(26.05.2010 в 02:58)
| | Зачем еще и вот это stristr($file_name,".")==".JPG"? Ведь stristr не зависит от регистра? | |
|
|
|
|
|
|
|
для: Mookapek
(26.05.2010 в 02:28)
| | Проблемы узнать отношение сторон и по большей стороне высчитать? | |
|
|
|