За последние 24 часа нас посетили 19158 программистов и 1639 роботов. Сейчас ищет 831 программист ...

Как узнать ширину картинки, которая лежит в базе?

Тема в разделе "Прочие вопросы по PHP", создана пользователем masterlelik, 8 ноя 2008.

  1. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Когда картинка лежит на ФТП, скажем путь /img/pic1.jpg, то ее раземр легко получается путем
    ImagesX ("/img/pic1.jpg") или элементом массива, который возвращается функцией getimagesize(), а вот как узнать ширину, если картинка лежит в базе в поле BLOB?
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    imagecreatefromstring и imagesx, но лучше в базу сохранять и размеры
     
  3. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    К сожалению, выдает ошибку
    Warning: imagecreatefromstring() [function.imagecreatefromstring]: Data is not in a recognized format.
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    лучше не хранить картинки в базе
     
  5. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    2: Mr.M.I.T.

    Согласен. Но задача стояла синхронизировать напрямую 1С с сайтом. Непросто как оказалось, чтобы без временных файлов, а сразу напрямую - сигнал из 1С и сразу все на сайте, без запуска каких-либо скриптов.
    Так вот картинки тоже все в базу загоняются.
     
  6. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    1) так-же как и ширину любой другой картинки, к которой php имеет доступ
    2) а если ftp на твоём сервере порезать, картинки перестанут работать?
    3) это даже не Попов...
     
  7. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    и какое отношение ftp имеет к (я извиняюсь, это типа сабж) к базе? шо за база? бэйсбол? бегаем.

    форум реально дохнет.
    Фанат - реально прав.
    трудно это признавать.
     
  8. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    2:QQQ. Когда картинка лежит не в базе, а виде файла (я выразился на ФТП) узнать размеры, существует не один способ. А как узнать размер картинки в базе, не создавая ее дубликата в виде файла?
     
  9. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    если свою либу не напишешь под это дело - никак
    сначала вынь её - дальше узнавай
    но вообще верх идиотизма (со всех сторон) держать картинки в базе
     
  10. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    База MySQL,
    сама таблица
    CREATE TABLE IF NOT EXISTS `t_galery_tovar_images` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `bimg` mediumblob NOT NULL,
    ) ;
     
  11. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    masterlelik
    выше
    по-умному (не я придумал): в базе - линк, на винте - факт, файлсистем - за тобой, можешь свою если очень надо..
     
  12. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    2:QQQ
    "В базе - линк, на винте - факт" - так обычно и делаю, но...

    Предыстория (ща найду хистори на форуме). Немного не по этой теме:
    Задача: передавать содержимое БД из 1С на сайт (интернет магазин)
    В 1С:предприятие 8.1 появилась возможность "общаться" с внешними веб-сервисами. Прочитал документацию по 1С:предприятию, в частности Глава 15 (http://users.v8.1c.ru/Info/Platform/8_1 ... c176167781)
    Но не понял как настроить эту связь со стороны веб-сервера? То есть как получить XDTO-пакет. В гугле очень мало информации, что касается формата XDTO, и в основном рассказывается для спецов по 1С...
    ________________
    Данный вопрос был решен, средствами 1С, но таким образом, что и картинки также загоняются в базу.
    Поэтому выбирать не приходится.
     
  13. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Писать размеры в соседнее поле при занесении картинки в базу и узнавать от туда... (иначе придётся доставать картинку из базы каждый раз когда надо узнать её размер, а это идиотизм)
     
  14. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Если это единственный способ - значит это опять же все должно передаваться из 1С...
     
  15. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    QQQ
    Какое отношение всякие фанаты имеют к данной конкретной проблеме?
    Наговорили человеку кучу всяких длинных словес, а как по-вашему, если картинки будут не в базе, а в файлах, это как-то поможет? Если сейчас GD функции выдают "Data is not in a recognized format", взгляд сбоку что-то изменит?

    Извините конечно, но это долбозвездочкабизм, долдонить, что картинки нельзя хранить в базе, не зная даже ЗАЧЕМ они там хранятся. :/
     
  16. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Кстати, именно тогда и нужно узнавать размер, именно тогда когда сама картинка извлекается из базы, чтобы отобразить ее на сайте, но при этом сделать определенного размера.
     
  17. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Я с этим не сталкивался (ну не храню я в базе файлы), но я вижу два варианта:
    1. Собрать картинку и средствами GD вытащить размеры
    2. Без собирания картинки - в данных хранятся размеры (иначе как бы они потом определялись). В зависимости от того как ты запихнул данные в базу - разобрать эти данные, определить где хранятся размеры и написать класс или функцию которая бы их вытаскивала, т.е. на вход идут все данные на выходе размеры. как то так...
     
  18. masterlelik

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

    С нами с:
    8 ноя 2008
    Сообщения:
    68
    Симпатии:
    0
    Как обычно решено не создавать колесо, а предварительно загнав в базу и размеры картинок))))