Обучение/Помощь новичкам | хелп с фотоальбомами
Крч, есть альбом, но он выгружает все фото в заданом в админке(максимальном) расширении, будь то 40х40 или 1000х1000. Тоесть все фото загружаются с размером 800х800(как указан МАКСИМАЛЬНЫЙ размер). Код файлов кину в следующем посте)
gallery_show_act.php
<?
//загружаем класс для работы с изображениями
require_once H."sys/inc/ImgType.class.php";
if ((user_access('foto_alb_del') || isset($user) && $user['id']==$ank['id']) && isset($_GET['act']) && $_GET['act']=='delete' && isset($_GET['ok']))
{
$q=mysql_query("SELECT * FROM `gallery_foto` WHERE `id_gallery` = '$gallery[id]'");
while ($post = mysql_fetch_assoc($q))
{
@unlink(H."files/foto/$post[id].$post[ras]");
mysql_query("DELETE FROM `gallery_foto` WHERE `id` = '$post[id]' LIMIT 1");
}
if ($user['id']!=$ank['id'])admin_log('Фотогалерея','Фотоальбомы',"Удаление альбома $gallery[name] (фотографий: ".mysql_num_rows($q).")");
mysql_query("DELETE FROM `gallery` WHERE `id` = '$gallery[id]' LIMIT 1");
msg('Фотоальбом успешно удален');
aut();
echo "<div class=\"foot\">\n";
echo "«<a href='/foto/$ank[id]/'>К фотоальбомам</a><br />\n";
echo "</div>\n";
include_once '../sys/inc/tfoot.php';
exit;
}
if (isset($user) && $user['id']==$ank['id'] && isset($_FILES['file']))
{
if ($imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'])))
{
$name=esc(stripcslashes(htmlspecialchars($_POST['name'])),1);
if (isset($_POST['translit1']) && $_POST['translit1']==1)$name=translit($name);
if ($name==null)$name=esc(stripcslashes(htmlspecialchars(preg_replace('#\.[^\.]*$#i', NULL, $_FILES['file']['name'])))); // имя файла без расширения)),1);
if (!preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui",$name))$err='В названии фото присутствуют запрещенные символы';
if (strlen2($name) < 3 ) $name = $name .'_'. mt_rand(1,99);
//$err='Короткое название';
if (strlen2($name) > 32)$err='Название не должно быть длиннее 32-х символов';
$name=my_esc($name);
$msg = $_POST['opis'];
if (isset($_POST['translit2']) && $_POST['translit2']==1)$msg=translit($msg);
if (strlen2($msg) > 1024)$err='Длина описания превышает предел в 1024 символов';
$msg=my_esc($msg);
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);
if ($img_x > $set['max_upload_foto_x'] or $img_y>$set['max_upload_foto_y'])
$err = 'Размер изображения превышает ограничения в '.$set['max_upload_foto_x'].'*'.$set['max_upload_foto_y'];
if (!isset($err)){
mysql_query("INSERT INTO `gallery_foto` (`id_gallery`, `name`, `ras`, `type`, `opis`) values ('$gallery[id]', '$name', 'png', 'image/png', '$msg')");
$id_foto = mysql_insert_id();
mysql_query("UPDATE `gallery` SET `time` = '$time' WHERE `id` = '$gallery[id]' LIMIT 1");
//класс для работы с файлом изображения
$image = new ImgType();
//сам файл
$image->load($_FILES['file']['tmp_name']);
//размеры
$image->resizeToWidth($set['max_upload_foto_x']);
//сохраняем под ...
$image->save(H.'files/foto/'. $id_foto .'.png');
if ($set['img_copyright'] == '0')
{
if ($img_x == $img_y)
{
$dstW = $set['max_upload_foto_x']; // ширина
$dstH = $set['max_upload_foto_y']; // высота
}
elseif ($img_x > $img_y)
{
$prop = $img_x/$img_y;
$dstW = $set['max_upload_foto_x'];
$dstH = ceil($dstW/$prop);
}
else
{
$prop = $img_y/$img_x;
$dstH = $set['max_upload_foto_y'];
$dstW = ceil($dstH/$prop);
}
$screen = imagecreatetruecolor($dstW, $dstH);
$y=imagesy($screen);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
// наложение копирайта
$screen = img_copyright($screen);
//Куда накладываем
imagejpeg($screen,H.'files/foto/'. $id_foto .'.png',90);
// Освобождаем память
imagedestroy($screen);
}
msg('Фотография успешно добавлена');
}
}
else $err='Выбранный Вами формат изображения не поддерживается';
}
?>
ImgType.class.php
<?
class ImgType {
var $image;
var $image_type;
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
$this->image = imagecreatefromjpeg($filename);
} elseif( $this->image_type == IMAGETYPE_GIF ) {
$this->image = imagecreatefromgif($filename);
} elseif( $this->image_type == IMAGETYPE_PNG ) {
$this->image = imagecreatefrompng($filename);
}
}
function save($filename, $image_type=IMAGETYPE_PNG, $compression=75, $permissions=null) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image,$filename,$compression);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image,$filename);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image,$filename);
}
if( $permissions != null) {
@chmod($filename,$permissions);
}
}
function output($image_type=IMAGETYPE_PNG) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image);
}
}
function getWidth()
{
return imagesx($this->image);
}
function getHeight()
{
return imagesy($this->image);
}
function resizeToHeight($height)
{
$ratio = $height / $this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
function resizeToWidth($width)
{
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
function scale($scale)
{
$width = $this->getWidth() * $sca
<?
//загружаем класс для работы с изображениями
require_once H."sys/inc/ImgType.class.php";
if ((user_access('foto_alb_del') || isset($user) && $user['id']==$ank['id']) && isset($_GET['act']) && $_GET['act']=='delete' && isset($_GET['ok']))
{
$q=mysql_query("SELECT * FROM `gallery_foto` WHERE `id_gallery` = '$gallery[id]'");
while ($post = mysql_fetch_assoc($q))
{
@unlink(H."files/foto/$post[id].$post[ras]");
mysql_query("DELETE FROM `gallery_foto` WHERE `id` = '$post[id]' LIMIT 1");
}
if ($user['id']!=$ank['id'])admin_log('Фотогалерея','Фотоальбомы',"Удаление альбома $gallery[name] (фотографий: ".mysql_num_rows($q).")");
mysql_query("DELETE FROM `gallery` WHERE `id` = '$gallery[id]' LIMIT 1");
msg('Фотоальбом успешно удален');
aut();
echo "<div class=\"foot\">\n";
echo "«<a href='/foto/$ank[id]/'>К фотоальбомам</a><br />\n";
echo "</div>\n";
include_once '../sys/inc/tfoot.php';
exit;
}
if (isset($user) && $user['id']==$ank['id'] && isset($_FILES['file']))
{
if ($imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'])))
{
$name=esc(stripcslashes(htmlspecialchars($_POST['name'])),1);
if (isset($_POST['translit1']) && $_POST['translit1']==1)$name=translit($name);
if ($name==null)$name=esc(stripcslashes(htmlspecialchars(preg_replace('#\.[^\.]*$#i', NULL, $_FILES['file']['name'])))); // имя файла без расширения)),1);
if (!preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui",$name))$err='В названии фото присутствуют запрещенные символы';
if (strlen2($name) < 3 ) $name = $name .'_'. mt_rand(1,99);
//$err='Короткое название';
if (strlen2($name) > 32)$err='Название не должно быть длиннее 32-х символов';
$name=my_esc($name);
$msg = $_POST['opis'];
if (isset($_POST['translit2']) && $_POST['translit2']==1)$msg=translit($msg);
if (strlen2($msg) > 1024)$err='Длина описания превышает предел в 1024 символов';
$msg=my_esc($msg);
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);
if ($img_x > $set['max_upload_foto_x'] or $img_y>$set['max_upload_foto_y'])
$err = 'Размер изображения превышает ограничения в '.$set['max_upload_foto_x'].'*'.$set['max_upload_foto_y'];
if (!isset($err)){
mysql_query("INSERT INTO `gallery_foto` (`id_gallery`, `name`, `ras`, `type`, `opis`) values ('$gallery[id]', '$name', 'png', 'image/png', '$msg')");
$id_foto = mysql_insert_id();
mysql_query("UPDATE `gallery` SET `time` = '$time' WHERE `id` = '$gallery[id]' LIMIT 1");
//класс для работы с файлом изображения
$image = new ImgType();
//сам файл
$image->load($_FILES['file']['tmp_name']);
//размеры
$image->resizeToWidth($set['max_upload_foto_x']);
//сохраняем под ...
$image->save(H.'files/foto/'. $id_foto .'.png');
if ($set['img_copyright'] == '0')
{
if ($img_x == $img_y)
{
$dstW = $set['max_upload_foto_x']; // ширина
$dstH = $set['max_upload_foto_y']; // высота
}
elseif ($img_x > $img_y)
{
$prop = $img_x/$img_y;
$dstW = $set['max_upload_foto_x'];
$dstH = ceil($dstW/$prop);
}
else
{
$prop = $img_y/$img_x;
$dstH = $set['max_upload_foto_y'];
$dstW = ceil($dstH/$prop);
}
$screen = imagecreatetruecolor($dstW, $dstH);
$y=imagesy($screen);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
// наложение копирайта
$screen = img_copyright($screen);
//Куда накладываем
imagejpeg($screen,H.'files/foto/'. $id_foto .'.png',90);
// Освобождаем память
imagedestroy($screen);
}
msg('Фотография успешно добавлена');
}
}
else $err='Выбранный Вами формат изображения не поддерживается';
}
?>
ImgType.class.php
<?
class ImgType {
var $image;
var $image_type;
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
$this->image = imagecreatefromjpeg($filename);
} elseif( $this->image_type == IMAGETYPE_GIF ) {
$this->image = imagecreatefromgif($filename);
} elseif( $this->image_type == IMAGETYPE_PNG ) {
$this->image = imagecreatefrompng($filename);
}
}
function save($filename, $image_type=IMAGETYPE_PNG, $compression=75, $permissions=null) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image,$filename,$compression);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image,$filename);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image,$filename);
}
if( $permissions != null) {
@chmod($filename,$permissions);
}
}
function output($image_type=IMAGETYPE_PNG) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image);
}
}
function getWidth()
{
return imagesx($this->image);
}
function getHeight()
{
return imagesy($this->image);
}
function resizeToHeight($height)
{
$ratio = $height / $this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
function resizeToWidth($width)
{
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
function scale($scale)
{
$width = $this->getWidth() * $sca
Аппппп
Аппппрррппппппппр