1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

[хак] Круглые углы изображений. Способ 1. Обрезание.

Discussion in 'Дополнения' started by Red Rabbit, Feb 19, 2011.

  1. Red Rabbit Thread starter Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Идея закруглять углы у всего что только можно последнее время стала достаточно популярна. Многие хотят что-то закруглить у себя на сайте, но не все знают как это сделать.
    Кто-то использует стили, кто-то javascript, кто-то php. Последний вариант мы и рассмотрим в этой статье. Этим способом мы сумеем закруглять углы у всех изображений, и обеспечим полную кроссбраузерность, поскольку картинки будут обрезаться по краям сразу после загрузки. Разумеется имеются и минусы - загруженные картинки навсегда останутся с круглыми краями, но отсутствие проблем с отображением в браузерах, никакого лишнего javascript кода это тоже хорошо.
    Поэтому если мы уж и решили округлить некоторые части нашего сайта, то этот способ самый рациональный.
    Итак, рассмотрим как это можно сделать на примере InstantCMS.


    Открываем файл
    includes/graphic.inc.php

    перед
    PHP:
      if ($watermark) { img_watermark($idest$new_width$new_height); }  
    вставляем
    PHP:

    //////// round image corners settings
    $corner_radius 15// Радиус обрезания угла.
    $r 255;            // Красный.  --Параметры фона за углами (цвет угла).
    $g 255;            // Зеленый.  --Параметры фона за углами (цвет угла).
    $b 255;            // Синий.    --Параметры фона за углами (цвет угла).
    ///////  end rics
      
    function roundCorner($file_name false$corner_radius){
    $err true;
    $image imagecreatefromjpeg($file_name);
    if(
    $image){$err false;}
    if(!
    $err){
    copy ($file_name);
    funcRound($image,$corner_radius);
    imagejpeg($image$file_name,100);
    imagedestroy($image);
    }}


    function 
    funcRound($img$radius=5$rate=15){
    $width imagesx($img);
    $height imagesy($img);

    imagealphablending($imgfalse);
    imagesavealpha($imgtrue);

    $rs_radius $radius $rate;       
    $rs_size $rs_radius 2;

    $corner imagecreatetruecolor($rs_size$rs_size);
    imagealphablending($cornerfalse);

    $trans imagecolorallocate($corner$r$g$b);

    imagefill($corner00$trans);

    $positions = array(
    array(
    0000),
    array(
    $rs_radius0$width $radius0),
    array(
    $rs_radius$rs_radius$width $radius$height $radius),
    array(
    0$rs_radius0$height $radius),
    );

    foreach (
    $positions as $pos) {
            
    imagecopyresampled($corner$img$pos[0], $pos[1], $pos[2], $pos[3], $rs_radius$rs_radius$radius$radius);
        }

    $lx $ly 0;
    $i = -$rs_radius;
    $y2 = -$i;
    $r_2 $rs_radius $rs_radius;

    for (; 
    $i <= $y2$i++) {
    $y $i;
    $x sqrt($r_2 $y $y);
    $y += $rs_radius;
    $x += $rs_radius;

    imageline($corner$x$y$rs_size$y$trans);
    imageline($corner0$y$rs_size $x$y$trans);

    $lx $x;
    $ly $y;
    }

    foreach (
    $positions as $pos) {imagecopyresampled($img$corner$pos[2], $pos[3], $pos[0], $pos[1], $radius$radius$rs_radius$rs_radius);}
    imagedestroy($corner);}
    Открываем файл
    components/users/frontend.php

    находим

    PHP:
    @img_resize($uploadfile$uploadavatar$medw$medh);
    @
    img_resize($uploadfile$uploadthumb$smallw$smallw);
    после них вставляем

    PHP:
    @roundCorner $uploadavatar15 );
    @
    roundCorner $uploadthumb15 );
    Всё. Настройки можете редактировать под себя разумеется. :)

Share This Page

All rights reserved SocEngine.ru ©