[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    тут уже много раз задавали вопросы с прозрачностью в png и ни разу не видел я нормального ответа.
    вот простой код по уменьшению картинки с сохранением прозрачности:

    PHP:
        $image='image.png';        // картинка
        
    header('Content-type: image/png');
        
    $img imagecreatefrompng($image);

        
    $x 190;            // требуемая длина
        
    $X imagesx($img);
        
    $Y imagesy($img);
        
    $y intval($x*$Y/$X);    // требуемая высота (щас пропорциональна)

        
    $thumb imagecreatetruecolor($x,$y);

        
    //imagealphablending($thumb,false);
        
    imagesavealpha($thumb,true);    // ключевая функция для прозрачности

        
    imagefill($thumb,0,0,IMG_COLOR_TRANSPARENT); 
        
    imagecopyresampled($thumb$img0000$x$y$X$Y);

        
    imagepng($thumb);
     
  2. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    даже полностью прозрачная картинка сохраняет прозрачность
     
    1 person likes this.
  3. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    141
    Likes Received:
    25
    Reputations:
    8
    5 баллов. Спасибо, все работает. Я правда позаимствовал только вот это:
    imagesavealpha($thumb,true); // ключевая функция для прозрачности
    imagefill($thumb,0,0,IMG_COLOR_TRANSPARENT);
     
  4. teraBite

    teraBite New Member

    Joined:
    15 Aug 2010
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    Ты мне сказал что ты читал все! А вот это тогда что?

    http://www.php.su/functions/?imagesavealpha

    У тебя Глаз кривой или как зачем этот сыр бор весь!
    Нафлудил тока! :confused:
     
  5. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    ясное дело, что в справочнике функций есть эта функция.
    но как и куда её воткнуть? почти на любой вопрос можно слать на php.su , типа смотри, там всё есть
    очевидно, если бы ты сам знал ответ, написал бы сразу ;)
     
  6. teraBite

    teraBite New Member

    Joined:
    15 Aug 2010
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    Я не знал ответ но почитал и понял! Только вот люди сюда заходят и не учатся а об медвежьей услуге просят хотят все и сразу а пошевелить мозгами не хотят только вот они не понимают что это для их блага!

    PHP:
    bool imagesavealpha resource imagebool saveflag )
    You have to unset alphablending (imagealphablending($imFALSE))
    что тут не понятного? Я все понял! по моему проще не куда! ;)
     
  7. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    PHP:
    $S='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $i='1234aZX'//число
    function plusplus($i,&$S){
        if(
    strval($i)==='') return $S{0};
        
    $l=strlen($i)-1;
        
    $L=strlen($S)-1;
        if(
    $i{$l}===$S{$L}){
            for(
    $j=$l;$j>=0;$j--)
                if(
    $i{$j}!==$S{$L}) if(false!==$x=strpos($S,$i{$j})){$i{$j}=$S{$x+1}; return $i;}
                    else return 
    false;
                else 
    $i{$j}=$S{0};
            
    $i=$S{0}.$i;
        }elseif(
    false!==$x=strpos($S,$i{$l})) $i{$l}=$S{$x+1};
        else return 
    false;
        return 
    $i;
    }
    for(
    $a=0;$a<=12;$a++)
    echo 
    '<br>'.($i=plusplus($i,$S));
    вернёт
    1234aZY
    1234aZZ
    1234b00
    1234b01
    1234b02
    1234b03
    1234b04
    1234b05
    1234b06
    1234b07
    1234b08
    1234b09
    1234b0a

    2 teraBite
    • там не написано (в случае наложения двух изображений), на какое из них нужно применять функцию. конечно это не такая уж и проблема на оба изображения поставить сохранение альфы...
    • не имея определённого опыта даже не ясно что, искать то надо. кому изначально известно, что там флажок поставить надо?
    • по моему коду картинка уменьшается и накладывается на прозрачный фон, а у чела на дэфольный (т.е. чёрный). Для начала можно было бы посоветовать фон мини-картинки опрозрачнить :) константы не каждый смотрит, в данном случае константа облегчает задание прозрачного фона и помогает избежать всяческих imagecolorallocatealpha

    я это к тому, что твой ответ совсем не помогает. если чел написал, что прогуглил, то зачем ему ссылка из того же гугла?

    а поставил 1 :rolleyes:
     
    #16287 roxblnfk, 21 Aug 2010
    Last edited: 21 Aug 2010
  8. freshman

    freshman New Member

    Joined:
    1 Aug 2010
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    нашол функцыю вращения картинки толко после вращения остается оттенок на заднем плане как избавится от етого ?

    надеюсь ето не флоод ибо все док на англиско каторый я нех. непонимаю :(
    <?php
    // File and rotation
    $filename = 'test.jpg';
    $degrees = 180;

    // Content type
    header('Content-type: image/jpeg');

    // Load
    $source = imagecreatefromjpeg($filename);

    // Rotate
    $rotate = imagerotate($source, $degrees, 0);

    // Output
    imagejpeg($rotate);
    ?>
    http://de3.php.net/manual/en/function.imagerotate.php
     
  9. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    freshman покажи скриншотами до и после, у меня всё нормально и я не понимаю о чём ты говоришь
    если ты про фон, то он выставляется третим аргументом функции imagerotate
     
  10. freshman

    freshman New Member

    Joined:
    1 Aug 2010
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0

    как зделать чтобы фон был прозрачен я хачу часы аписать и чтобы стрелка полсе каждои секунды передвигалась
    скрипта пока нет ну там непроблема с времем проблема чтобы фон стал прозрачен когда например вращаеш на 1,2,3 градуса и.т.д на 180 всё ок кончно :) да и низнаю как актуализироваТь знаеш чтобы вовремя примерно с 1 секундои врошался рисунок но чето я нитак делаю :(

    <?php
    // File and rotation
    $filename = 'fec.jpg';
    $degrees = 10;

    // Content type
    header('Content-type: image/jpeg');

    // Load
    $source = imagecreatefromjpeg($filename);


    // Rotate
    for($i=0;$i<360;$i++,$degrees++){
    $rotate = imagerotate($source, $degrees, 0);

    // Output
    imagejpeg($rotate);
    flush();
    sleep(1);

    }

    ?>
     
  11. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    установить прозрачный фон:
    $rotate = imagerotate($source, $degrees, IMG_COLOR_TRANSPARENT);

    вот тока не знаю как ты в реальном времени будешь вращать :) картинку перезагружать? делай лучше во флеше, если надо динамику
     
    #16291 roxblnfk, 21 Aug 2010
    Last edited: 21 Aug 2010
  12. freshman

    freshman New Member

    Joined:
    1 Aug 2010
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    я разачарован в пхп :( java 4 ever :)
     
  13. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Решено: https://forum.antichat.ru/showpost.php?p=2309951&postcount=16458

    Я создал базу данных и в ней 3 столбца. Заполнил 3 строки. Потом добавил еще 1 столбец и в предыдущих 3-х строках этот 4-й столбец не заполнен, т.е. NULL. Каким образом можно заполнить только 3 раза этот столбец? Я пишу

    PHP:
    INSERT INTO users.profession VALUES ('Повар'WHERE name="Алексей";
    Где БД это users, profession - это 4-й столбец, который у 3 старых юзеров не заполнен и только его надо заполнить. Почему то предложенный вариант не работает!
     
    #16293 Edward, 21 Aug 2010
    Last edited by a moderator: 22 Aug 2010
  14. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Интересует следующий вопрос
    Есть два файла: форма и обработчик, если условие истина - данные заносятся в базу
    Все правильно и великолепно работает
    Только вот проблема в том, что если еще один раз обновить обработчик - результат будет анологичен, вроде бы все правильно, но мне опять надо чтоб с формы начинало, а если обновить - выскочило определенное сообщение сообщение
    Можно каким-то образом сравнить поля в базе последнее и предпоследнее и взависимости от этого делать условие?
    Или есть другой способ, вообще не знаю
     
  15. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    141
    Likes Received:
    25
    Reputations:
    8
    В обработчик вставь что-нибудь вроде <meta http-equiv='refresh' content='0,url страницы формы' />
     
  16. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    141
    Likes Received:
    25
    Reputations:
    8
    А почему не
    PHP:
    UPDATE users SET profession="Повар" where name='Алексей';
     
  17. chezar

    chezar Elder - Старейшина

    Joined:
    29 Jan 2006
    Messages:
    38
    Likes Received:
    6
    Reputations:
    5
    Помогите, не могу почему то вывести картинку.
    Вывожу картинку так, и ничего не отображается
    PHP:
        

    echo "<img src=\"https://www.google.com/recaptcha/api/image?c=03AHJ_Vuua2iHm937eMg7T0wVpR3l5k6vnmkPjnmyxTy7nwhQcJGxPo7cncMgSeq2NjSjLA9bSiSVFNhCj-xApYWt7HxChTJ5Bd1wwXRMpa7HrXfozDeGwmJnp_xZsna9omg8X2EiJkHh66myQ3SkrYtzWLRrPBjfXOw\" height=\"57\" width=\"300\"> <br>";
    А если открыть эту ссылку в браузере, то всё нормально :confused:

    [​IMG]
     
    #16297 chezar, 21 Aug 2010
    Last edited: 21 Aug 2010
  18. temp_late

    temp_late Banned

    Joined:
    22 Aug 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    2
    Доброе время суток.
    Сталкнулся с такой проблемой: в базе данных mysql создал таблицу, а в качестве имен стобцов таблиц задал числовые и теперь когда выполняю запрос
    UPDATE `table` SET `22`=`22`-1 WHERE `id`=1
    смысл нужно из числового название просто вычесть 1 , на минус не срабатывает, а вот на плюс работает:
    UPDATE `table` SET `22`=`22`+1 WHERE `id`=1

    Как мне сделать чтобы запрос проходил правильно на вычетание ?

    пример таблицы:

    id |11| 22 | 7
    1 | 0| | 3| 1
    2 | 0| | 0| 1
     
  19. djpasica

    djpasica Banned

    Joined:
    23 May 2009
    Messages:
    28
    Likes Received:
    100
    Reputations:
    -4
    нужно поделить цифры вида 100000000 = 100,000,000
     
  20. freshman

    freshman New Member

    Joined:
    1 Aug 2010
    Messages:
    37
    Likes Received:
    0
    Reputations:
    0
    неуверне но думаю вот так

    <?php
    $text=10000000000000;
    $str = str_split($text, 3);
    $final_str = implode(",", $str);
    echo $final_str;

    ?>
     
Thread Status:
Not open for further replies.