ФорумПрограммированиеPHP для идиотов → Позиционирование по вертикали

Позиционирование по вертикали

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 10 июня 2009 г. 18:17, спустя 1 час 4 минуты 14 секунд

    Может кто не спит, и подскажет, какой функцией вспроизвести аналогичное действие?
    $image = new Imagick($uploadfile);



    Картинки просто в цикле меняются, а так
    foreac(…)
    {
    $image = new Imagick($uploadfile);

    $image->thumbnailImage($size[0]*$ratio, $size[1]*$ratio);
    $image->writeImage($uploadfile);
    $image->thumbnailImage($size[0]*$ratio2, $size[1]*$ratio2);
    $image->writeImage($uploadfile_g);

    }

    Рабтать не хочет. Делает только 1 картинку
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 10 июня 2009 г. 18:24, спустя 6 минут 34 секунды


    Может кто не спит, и подскажет, какой функцией вспроизвести аналогичное действие?
    $image = new Imagick($uploadfile);



    Картинки просто в цикле меняются, а так
    foreac(…)
    {
    $image = new Imagick($uploadfile);

    $image->thumbnailImage($size[0]*$ratio, $size[1]*$ratio);
    $image->writeImage($uploadfile);
    $image->thumbnailImage($size[0]*$ratio2, $size[1]*$ratio2);
    $image->writeImage($uploadfile_g);

    }

    Рабтать не хочет. Делает только 1 картинку
    ну ты вроде бы не создал объект $image = new Imagick($uploadfile_g);
    попробуй, хотя хз… щас не могу найти скрипт где делал подобное, на ноуте сижу, комп не работает.
    PS споки :)
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 10 июня 2009 г. 18:29, спустя 5 минут 34 секунды

    На локалке раболает, на хосте тока по 1 =(
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 10 июня 2009 г. 18:31, спустя 1 минуту 10 секунд

    Professor, что такое $uploadfile_g? Весь код, которые зависим покажи
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 10 июня 2009 г. 18:35, спустя 4 минуты 23 секунды

    Это превью =)

    собственно весь код

    for($i=0;$i<$count_file;$i++)
    {
    $uploaddir = "galery/f{$id_galery}/i_";
    $uploaddir_g = "galery/f{$id_galery}/p_";
    $uploaddir_or = "galery/f{$id_galery}/t";
    $name_img=basename($_FILES['myfile']['name'][$i]);

    if(isset($_FILES['myfile']['tmp_name'][$i])&&$_FILES['myfile']['tmp_name'][$i]!="")
    {
    mysql_query("INSERT INTO images SET title='{$name_img}',id_galery={$id_galery}");
    $id_img=mysql_insert_id();

    $uploadfile = "{$uploaddir}{$id_img}";
    $uploadfile_g = "{$uploaddir_g}{$id_img}";


    if (move_uploaded_file($_FILES['myfile']['tmp_name'][$i], $uploadfile))
    {

    $width=800;
    $height=600;

    $size=getimagesize($uploadfile);

    if( $width<$size[0] || $height<$size[1] )
    {
    $ratio=min($height/$size[1],$width/$size[0]);
    }
    else
    {
    $ratio=1;
    }


    if( 100<$size[0] || 100<$size[1] )
    {
    $ratio2=min(100/$size[1],100/$size[0]);
    }
    else
    {
    $ratio2=1;
    }


    $image = new Imagick($uploadfile);

    $image->thumbnailImage($size[0]*$ratio, $size[1]*$ratio);
    $image->writeImage($uploadfile);
    $image->thumbnailImage($size[0]*$ratio2, $size[1]*$ratio2);
    $image->writeImage($uploadfile_g);

    }
    }

    }
    }


    Проблемма в том что только 1 картинка загружается =(
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 10 июня 2009 г. 18:35, спустя 22 секунды

    Может даже не с Imagick связанно =)
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 10 июня 2009 г. 19:03, спустя 27 минут 30 секунд

    делай $image->clear() после работы с картинкой (в конце цикла)
    adw/0
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 10 июня 2009 г. 19:12, спустя 9 минут 11 секунд


    adw0rd, ну-ну :)
    ps. насчет доктайпов не уверен
    но вертикал-алигн — неадекватная хуета


    Да вроде для инлайновых элементов работает во всех браузерах. В простых формах контролы удобно им выравнивать.

    <!DOCTYPE html>
    <html>
    <head>
    <style type="text/css">
    p {
    border:1px solid;
    }
    img {
    width:100px;
    height:100px;
    }
    .top {
    vertical-align:top;
    }
    .middle {
    vertical-align:middle;
    }
    .bottom {
    vertical-align:bottom;
    }

    </style>
    </head>
    <body>
    <p>
    <img alt="kartinko" class="top" />
    <span class="top">вверху</span>
    </p>

    <p>
    <img alt="kartinko" class="middle" />
    <span class="middle">по центру</span>
    </p>

    <p>
    <img alt="kartinko" class="bottom" />
    <span class="bottom">внизу</span>
    </p>

    </body>
    </html>
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 10 июня 2009 г. 19:34, спустя 22 минуты 26 секунд

    Timur, о, типа я прав?)
    adw/0
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 10 июня 2009 г. 19:48, спустя 13 минут 10 секунд

    я вообще не совсем понял о чем у вас спор :)

    Из картинки Professor'а следует, что нужно что-то типа этого:
    <!DOCTYPE html>
    <html>
    <head>
    <style type="text/css">
    img {
    vertical-align:middle;
    border:1px solid;
    }
    </style>
    </head>
    <body>
    <p>
    <img style="width:12px; height:34px;" />
    <img style="width:78px; height:56px;" />
    <img style="width:90px; height:32px;" />
    <img style="width:54px; height:65px;" />
    <img style="width:15px; height:31px;" />
    <img style="width:62px; height:89px;" />
    <p>
    </body>
    </html>


    Просто не всегда удается оставить элемент инлайновым. Если, например, нужно было бы сделать к картинкам подписи, то их бы пришлось заворачивать в блоки, а тогда vertical-align уже не сработает. Ещё тут путаница, из-за того свойство назначается самому элементу, а не его родителю, как это было бы в табличной верстке (valign у ячейки).
  • AlexB

    Сообщения: 4292 Репутация: N Группа: в ухо

    Spritz 11 июня 2009 г. 1:03, спустя 5 часов 15 минут 6 секунд

    Вообще, вертикальное центрирование контента произвольной высоты и произвольной структуры, ИМХО, не имеет адекватного решения без таблиц. Все из-за того, что IE6 не поддерживает display: table-cell
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 11 июня 2009 г. 1:33, спустя 30 минут 35 секунд


    md5, я только предположил :)
    я не особо дружу с версткой, все делаю методом тыка :)
    йес, я не один такой)))
  • iMd5

    Сообщения: 39 Репутация: N Группа: Кто попало

    Spritz 11 июня 2009 г. 3:39, спустя 2 часа 5 минут 44 секунды

    Во. АлексБ вкурсе.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 12 июня 2009 г. 4:10, спустя 1 день 30 минут

    <ul class="galery">

    <li>
    <p class="p1">
    <a href="/galery/f60/i_53" class="lightbox-enabled" rel="lightbox[kitchen]" ><img src="/galery/f60/p_53" border="0" title="000aarf4.jpg"></a>
    </p>
    <p class="p_s">
    скачать
    </p>
    </li>
    <li>
    <p class="p1">
    <a href="/galery/f60/i_52" class="lightbox-enabled" rel="lightbox[kitchen]" ><img src="/galery/f60/p_52" border="0" title="04f4017025.jpg"></a>
    </p>
    <p class="p_s">
    скачать
    </p>
    </li>
    <li>

    <p class="p1">
    <a href="/galery/f60/i_51" class="lightbox-enabled" rel="lightbox[kitchen]" ><img src="/galery/f60/p_51" border="0" title="11f4017035.jpg"></a>
    </p>
    <p class="p_s">
    скачать
    </p>
    </li>
    </ul>


    ul.galery
    {
    margin:0px;
    padding:0px;
    }

    ul.galery li
    {
    float:left;
    margin:10px;
    vertical-align:middle;
    text-align:center;
    padding:0px;
    height:120px;
    width:100px;


    }
    ul.galery li p
    {
    margin:0px;
    padding:0px;
    }
    .p1
    {
    height:100px;
    width:100px;
    vertical-align:middle;
    display: table-cell;
    }
    .p1 a
    {
    vertical-align:middle;
    }

    .p_s
    {
    height:20px;
    width:100px;
    }

    .p1 a img
    {

    vertical-align:middle;
    }


    В общем получилось как и сказал AlexB. Работает везде кроме IE =(
  • Frukts

    Сообщения: 28 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 14:44, спустя 1163 дня 10 часов 34 минуты

    Роботы пытаются просверлить мой череп, но моя энергетическая защита уничтожает их на месте, превращая в груды расплавленного металла.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!