Перейти к содержимому


Есть ли возможность ограничить картинку разрешением?


Сообщений в теме: 14

#1 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 21 Апрель 2013 - 12:41

Например, что бы нельзя было загрузить картинку менее 500*500 пикселей ?

#2 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 21 Апрель 2013 - 23:53

возможно есть вычисление, которое разрешение картинки сможет вывести?

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 22 Апрель 2013 - 10:52

Нет, пока таких ограничений нет. Но проблема известна.

#4 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 23 Апрель 2013 - 20:31

ну уж не проблема. так ... пожелание.

а с помощью getimagesize() можно узнать разрешение изображения?

вот что пишут про эту функцию http://php.net/manua...etimagesize.php

может найдутся умельцы, которые смогут вывести в текстовом виде расширение загруженной картинки?

#5 OLDest

    Активный участник

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 24 Апрель 2013 - 05:21

проблеме уже 8 месяцев... скоро рожать решение пора...
Купил лицензию КБ

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Апрель 2013 - 10:59

Просмотр сообщенияsmart (23 Апрель 2013 - 20:31) писал:

а с помощью getimagesize() можно узнать разрешение изображения?

Да. В принципе можно искусственно удалять добавленное изображение, если его разрешение больше допустимого.

#7 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 25 Апрель 2013 - 00:18

а можете подсказать, как и куда ввести код, чтобы хотя-бы просто в текстовом поле показывало разрешение картинки?

#8 OLDest

    Активный участник

  • Пользователи
  • PipPipPip
  • 268 сообщений
  • Пол:Мужчина
  • Город:Калининград

Отправлено 25 Апрель 2013 - 06:25

Просмотр сообщенияCbCoder (24 Апрель 2013 - 10:59) писал:

Да. В принципе можно искусственно удалять добавленное изображение, если его разрешение больше допустимого.
но в этом случае, если пользователь подает через внешнюю форму, никогда не узнает что его фото непрошло
Купил лицензию КБ

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 25 Апрель 2013 - 11:15

Просмотр сообщенияsmart (25 Апрель 2013 - 00:18) писал:

а можете подсказать, как и куда ввести код, чтобы хотя-бы просто в текстовом поле показывало разрешение картинки?

$files = explode("\r\n", $line['Поле с картинкой']); // извлекаем из поля изображение имена загруженных картинок и помещаем их в массив
foreach ($files as $file_name) // проходимся по этому массиву
{
    $file_path = get_file_path(111, $line_id, $file_name); // извлекаем путь к файлу с текущей картинкой, 111 - id поля изображения
    $image_size = getimagesize($file_path); // получаем размер текущей картинки в виде массива
    $line['Текстовое поле'] = $file_name.": ".$image_size[0]."x".$image_size[1]; // выводим размер последней картинки в текстовое поле
}


#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 25 Апрель 2013 - 11:17

Просмотр сообщенияOLDest (25 Апрель 2013 - 06:25) писал:

но в этом случае, если пользователь подает через внешнюю форму, никогда не узнает что его фото непрошло

Почему это? Что мешает выдать пользователю сообщение? А если вычисление поместить в саму форму, можно к тому же отменять ее отправку, пока не будет загружена корректная картинка.

#11 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 25 Апрель 2013 - 16:08

Спасибо. Еще не пробовал, но все равно спасибо

#12 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 30 Апрель 2013 - 08:38

работает. спасибо.

А подскажите пожалуйста, а если в поле с картинкой не файл, а прямая ссылка на картинку? например вот такая http://yandex.st/leg...fvuf3mGeD_8.png

Как тогда код будет выглядеть?

#13 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Апрель 2013 - 09:26

По http ссылке вы никак не проверите разрешение картинки. Ее придется скачать вначале.

#14 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 30 Апрель 2013 - 09:29

странно. а вот здесь вроде пишут, что можно http://lphp.ru/article/348.html

правда у меня умения не хватает, это перенести в базу.

там такой код

<?php
// получаем массив, содержащий размеры изображения
$size = getimagesize ("http:⁄⁄yandex.st/lego/_/X31pO5JJJKEifJ7sfvuf3mGeD_8.png");
// Значение флага, 
// возвращаемого функцией getimagesize() под индексом 2
// после определения размера изображения
$flag = array(1=>'GIF',
			 2=>'JPG',
			 3=>'PNG',
			 4=>'SWF',
			 5=>'PSD',
			 6=>'BMP',
			 7=>'TIFF(байтовый порядок intel)',
			 8=>'TIFF(байтовый порядок motorola)',
			 9=>'JPC',
			 10=>'JP2',
			 11=>'JPX');
echo "Ширина: " . $size[0] .'<br>';
echo "Высота: " . $size[1] .'<br>';
echo "Тип изображения: " . $flag[$size[2]] .'<br>';
echo "Ширина и Высота: " . $size[3] .'<br>';
?>


#15 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Апрель 2013 - 10:54

Файловые функции не всегда работают по http, насколько я знаю из документации. Зависит от настроек на сервере.





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных