За последние 24 часа нас посетили 21327 программистов и 1022 робота. Сейчас ищет 851 программист ...

jpeg to base64

Тема в разделе "Вопросы от блондинок", создана пользователем dapperkop, 11 июн 2014.

  1. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Как думаете, много-много изображений в base64, отданных в клиент - это тру? Если нет, то почему?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Отдавай изображения в UTF-8, так круче. А текст отдавай в png.
     
  3. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Твоя позиция мне ясна, пасиб!)
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А мне твоя нет. В чем соль твоей задумки? Без сарказма.
     
  5. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Да нет соли... Просто хожу, выпытываю, разузнаю, вынюхиваю... Кто как че мутит, кто как че не мутит...

    Добавлено спустя 51 секунду:
    Кого от чего тошнит и почему...

    Добавлено спустя 1 минуту 6 секунд:
    У меня такое бывает...
     
  6. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    ну сам подумай: бинарные данные весят пусь кб 200, в base64 это будет минимум раза в 3 больше сразу же.

    P.S. да, я такой изврат пользую, но не для страничков, а для веб-сервисов, когда надо получить от клиента или отдать ему какие-то бинарные данные.
     
  7. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Угу... Кажись легчает...
     
  8. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Если картинки совсем маленькие, значки какие-нибудь, и отрисовываются в canvas, или мне почему-либо не хочется, чтобы было много запросов при открытии страницы, или картиночки всегда разные (не кешируются), то внедряю в стили или скрипт.
    Но вот для большого количества обычных картинок (статический контент типа) нет смысла так делать.
     
  9. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Видимо автар хочет закрыть доступ к файлам, что бы все работало через единую точку входа, а вот изображения отдавать через их перекодирование в base64.
    У самого когда то летали такие мысли, но.. решил не заморачиваться, хотя скорее повода не было.

    PS это перекодирование не всегда нормально работает, я помню сделал скрипт, просто на сервере он работает, а вот загрузил я его в WordPress, уже не работает. Сколько не рылся и не крутился, так и не нашел в чем косяк.

    PS2 я бы не стал таким заниматься.
     
  10. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Я тоже в стилях использую...
    Да вот думаю все. Понятно, конечно, что и весит много... Да и пыха не так уж и быстро преобразует все это дело в нужный вид. Но вот отсутствие лишних запросов как то так подкупает. Хотя... Кароч не знаю я, надо думать.

    Добавлено спустя 4 минуты 41 секунду:
    Нормально там все работает. Плавали. Долго только (во всяком случае на джино).

    Добавлено спустя 3 минуты 51 секунду:
    Не, все правильно, фигня все это...
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Шило на мыло это, а не отсутствие лишних запросов, поверь :)
     
  12. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Отож, сов. согласен!
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Годится для каптчи, динамического графика или текстур в стилях. Ведь такое решение снижает количество запросов, когда больше трафика уходит на заголовки, чем на сами данные (утрировано). Беречь вычислительные ресурсы клиента не нужно.

    Добавлено спустя 3 минуты 13 секунд:
    К тому же гзип на этапе отдачи страницы сожмёт картинку почти до исходного. Так что трафик тот же, запросов - меньше.
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    не сожмёт =)
     
  15. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    [​IMG]
    jpeg 1643 байта
    Код (Text):
    1. $img = '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';
    2. echo strlen($img); //2192
    3. echo "<br>\r\n";
    4. echo strlen(gzencode($img, 9)); //1617
     
  16. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Почему так? Каждый символ в base64 символизирует число от 0 до 63, иначе говоря - шесть бит. Но сам символ весит восемь бит. В двоичном представлении это выглядит так: полезные группы из 6 бит каждая отделены друг от друга двумя нулями. Именно поэтому строка base64 на треть длинее. Gzip восстанавливает справедливость, задействуя все биты для хранения информации, естественно, практически не сжимая сам JPEG.
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Эти "лишние" запросы проходят разово. Потом либо ресурсы храним в кэше браузера, либо, как модные посоны, аяксим то, что нужно, не дергая ресурсы. А лучше и то и то.

    Добавлено спустя 2 минуты 29 секунд:
    Я теперь буду вспоминать эту фразу каждый раз, когда буду открывать браузер с 20 закрепленными страницами и ждать, пока он отлипнет.
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Прикольно
    Код (PHP):
    1. $img = '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';
    2. echo strlen(base64_decode($img)); //1643
    3. echo "<br>\r\n";
    4. echo strlen($img); //2192
    5. echo "<br>\r\n";
    6. echo strlen(gzencode($img, 9)); //1617
    7. echo "<br>\r\n";
    8. echo strlen(gzencode(base64_decode($img), 9)); //1611
    9.  
     
  20. antonn_1

    antonn_1 Новичок

    С нами с:
    6 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    залипающий браузер - это проблема в архитектуре самого браузера (например нежелание выносить обработку в другой поток). Но претензия на неэкономность ресурсов клиента обоснована, например, когда речь заходит о терминальном сервере.

    а вообще нет ничего страшного в отдаче бинарников в base64, любой веб-сервис предполагает такой обмен.
     
  21. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Расскажи это хрому, у которого деление идет не на потоки, а вообще на процессы. 1 страничка = 1 процесс.
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Ну рендериг идёт текущей вкладки и нечасто. Так что можно и как гугель - всё в base64.
     
  23. antonn_1

    antonn_1 Новичок

    С нами с:
    6 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    залипание происходит как раз на уровне процесса, нужно разделять интерфейс и долгую обработку данных. Еще есть методы межпроцессного взаимодействия, которые могут являть собой "бутылочное горлышко" (крит.секции), так что и в этом случае могут быть тормоза
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Пригласи инженеров Google на мастеркласс, чтоли :) А то они ж того, недалекие.
     
  25. antonn_1

    antonn_1 Новичок

    С нами с:
    6 июн 2014
    Сообщения:
    8
    Симпатии:
    0
    Пускай заходят. Еще есть поговорка "не боги горшки обжигают" :)