Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

изменение размера картинки

00 голосов
10
есть самописный компонент.
надо сделать ресайз фотки до нужного размера.
есть какая-нибудь битриксовая команда?
когда я пытаюсь сделать это обычными методами, то после строки

Код
$img = imagecreatefromjpeg($src);
//$src - путь до картинки


скрипт перестаёт выполнятся.
спросил 24 Фев, 13 от Willow (300 баллов)

10 Ответы

00 голосов
Велика вероятность того, что не хатает памяти.

В БУСе используется в основном изменение размера картинки на клиенте либо средствами html, либо js.
JS:
Рисунок

В фотогалерее 2.0 при загрузке из публичной части создаются копии фото меньших размеров.
ответил 24 Фев, 13 от Alarma (580 баллов)
00 голосов
CFile::ShowFile();
CFile::ShowImage();
ответил 13 Март, 13 от Alarma (580 баллов)
00 голосов
спасибо :)
размер картинки прим 2000 х 1600

а если загружать через фотогалерею она сожмёт рисунок?
ответил 12 Апр, 13 от Willow (300 баллов)
00 голосов
Она создаст копию меньшего размера, а оригинал сожмет до размера, выбранного в меню загрузки.
ответил 05 Авг, 13 от Alarma (580 баллов)
00 голосов
а если нет модуля фотогаллереи, но сжимать все равно нужно?
ответил 07 Ноя, 13 от Tyrel (140 баллов)
00 голосов
О... Тут большой простор для творчества! :)

CFile::ShowFile(); - html-сжатие картинки, ф-ция ядра.
Если же вам нужно физически сжимать картинки, то желательно это делать не во время каждого показа, а сжать единожды и сохранить. Сжимать можно ф-цией imagecreatefromjpeg (и другими из серии работы с картинками) для изменения размера картинки на сервере, или сначала рисунки подготовить, а потом только загружать :))
ответил 13 Фев, 14 от Alarma (580 баллов)
00 голосов
Цитата
Ирина Юртаева пишет:
О... Тут большой простор для творчества!

CFile::ShowFile(); - html-сжатие картинки, ф-ция ядра.
Если же вам нужно физически сжимать картинки, то желательно это делать не во время каждого показа, а сжать единожды и сохранить. Сжимать можно ф-цией imagecreatefromjpeg (и другими из серии работы с картинками) для изменения размера картинки на сервере, или сначала рисунки подготовить, а потом только загружать )


да.. с этим я уже знаком :) Изучал форум.
Функции с 2006 года в дополнение к ShowFile, кроме Show2Files, так и не появилось.

Без своей функции для этой задачи, как я уже понял - не обойтись в Битриксе ))
ответил 04 Июнь, 14 от Tyrel (140 баллов)
00 голосов
Цитата

CFile::ShowFile(); - html-сжатие картинки, ф-ция ядра.


как понять: "html-сжатие"?
ответил 01 Окт, 14 от Willow (300 баллов)
00 голосов
А подскажите, каким образом настроить автоматическое сжатие при публикации статьи ( новости ).

К примеру, я добавляю новость с картинкой, в разделе новостей эта картинка висит "как есть", а вот на главную страницу выводится эта же новость, но со сжатой картинкой заранее установленного размера. Тоесть для всех картинок на главной должен быть фиксированный размер!

:|
ответил 03 Фев, 15 от Delorian (140 баллов)
00 голосов
например

Код
<?
    $src = $_SERVER["DOCUMENT_ROOT"].$_REQUEST['src'];    
    $width = $_REQUEST['width'];    
    $img = @imagecreatefromjpeg($src);  
    $photoInfo = @getimagesize($src);        
    if ($width*1 > $photoInfo[0]*1) { 
        header('Content-Type: image/jpeg');
        imagejpeg($img);     
    }
    else {
        $height = ($width * $photoInfo[1]) / $photoInfo[0];
        $imgResize = imageCreateTrueColor($width, $height);
        imageCopyResampled($imgResize, $img, 0, 0, 0, 0,
        $width, $height, $photoInfo[0], $photoInfo[1]);
        header('Content-Type: image/jpeg');
        imagejpeg($imgResize);     
    }
    
?>
ответил 17 Май, 15 от Willow (300 баллов)

Похожие вопросы

0 голосов
8 ответов
спросил 05 Июль, 13 от TY (160 баллов)
0 голосов
6 ответов
0 голосов
1 ответ
0 голосов
2 ответов
0 голосов
4 ответов
спросил 10 Июль, 13 от SuperMag (120 баллов)