Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка размера изображения, Проверка размера картинки. 
V
    Опции темы
anrs
Дата 16.1.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



Ребят , помогите написать проверку размера изображения ... 
Перед тем как загрузить , у меня идёт проверка расширения картинки ,  закачиваются только форматы png :


Код

include 'config.cfg';
include ''.$style.'/header.tpl';
$valid_types        =  array("PNG","png");
    $ext = substr($_FILES['myfile']['name'], 
            1 + strrpos($_FILES['myfile']['name'], "."));
if (!in_array($ext, $valid_types)) {
            echo $up_1;
        } else {


Подскажите как сделать , чтобы закачивались картинки только формата 200х100 .

Спасибо зарание. smile 
PM MAIL   Вверх
solenko
Дата 16.1.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



php.net/getimagesize


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
anrs
Дата 16.1.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



Я проверил все примеры которые боле мене подходят  ... ни один не работает ... можите именно показать тот пример который мне поможет ... я его поковыряю ))
PM MAIL   Вверх
bars80080
Дата 16.1.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



поковырять примеры? пожалуйста:

функция для изменения изображения
$src - файл, $dest - новый путь, $width - ширина, $height - высота, $rgb - не трогай, $proportion - сохранять ли пропорции, $quality - качество для jpg картинок
Код

function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $proportion=false, $quality=100) {
    if(!file_exists($src)) return false;
    $size = getimagesize($src);
    if($size === false) return false;   
    if($proportion === true) {
        $h0 = $height;
        $height = ($width/$size[0])*$size[1];
        if($height > $h0) { $height = $h0; $width = ($height/$size[1])*$size[0]; }}
    if($width > $size[0]) $width = $size[0];
    if($height > $size[1]) $height = $size[1];
    $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
    $icfunc = 'imagecreatefrom'.$format;
    if(!function_exists($icfunc)) return false;
    $x_ratio = $width/$size[0];
    $y_ratio = $height/$size[1];
    $ratio = min($x_ratio, $y_ratio);
    $use_x_ratio = ($x_ratio == $ratio);
    if($use_x_ratio) { $new_width = $width; $new_left = 0; } 
    else { $new_width = floor($size[0] * $ratio); $new_left = floor(($width - $new_width) / 2); }
    if(!$use_x_ratio) { $new_height = $height; $new_top = 0; }
    else { $new_height = floor($size[1] * $ratio); $new_top = floor(($height - $new_height) / 2); }
    $isrc = $icfunc($src);
    $idest = imagecreatetruecolor($width, $height);
    if(is_array($dest)) { 
        $nd = explode('.', $src); 
        $ndc = count($nd); 
        $nd[$ndc - 2] .= $dest[0]; $dest = implode('.', $nd); }
    imagefill($idest, 0, 0, $rgb);
    imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
    imagejpeg($idest, $dest, $quality);
    imagedestroy($isrc);
    imagedestroy($idest);
    return $dest; }


PM MAIL WWW   Вверх
theworldcreator
Дата 16.1.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата

Перед тем как загрузить , у меня идёт проверка расширения картинки ,  закачиваются только форматы png

Если быть точным, закачиваются только файлы произвольного содержания с расширением либо "png" либо "PNG".

Добавлено @ 15:55
То-есть тот факт что вы проверили расширение картинки абсолютно не мешает загрузить что угодно любого типа.

Это сообщение отредактировал(а) theworldcreator - 16.1.2009, 15:55
PM MAIL WWW ICQ   Вверх
solenko
Дата 16.1.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



theworldcreator, ну в сочетании с проверкой размеров получаем вполне надежную гарантию, что загружено именно изображение. 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
theworldcreator
Дата 16.1.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Цитата

theworldcreator, ну в сочетании с проверкой размеров получаем вполне надежную гарантию, что загружено именно изображение. 

Согласен, только это не дает никаких сведений о типе изображения(требуется ведь именно png) smile 
PM MAIL WWW ICQ   Вверх
anrs
Дата 16.1.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



Ребят, мне надо проще , тобишь не изменять размер , а просто проверить 
Если размер картинки больше или меньше 200х100 - то написать "Облом" ...

 smile 
PM MAIL   Вверх
bars80080
Дата 16.1.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Код

$size = getimagesize($src);
if($size[0] != 200 && $size[1] != 100) { echo 'несовпало'; }

PM MAIL WWW   Вверх
anrs
Дата 16.1.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



Спасибо , когда больше постов наберу - повышу тебе репутацию  smile 
PM MAIL   Вверх
theworldcreator
Дата 17.1.2009, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: нет
Всего: 13



Только там должен был быть не AND(&&), а OR, иначе проверка пропустит картинку допустим 200*500
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.