как определить точный формат изображения средствами php?

Discussion in 'PHP' started by Дикс, 16 Aug 2009.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    качаю с вк капчу, отправляю на антикапчу как jpg, пишет что ERROR_IMAGE_IS_NOT_JPEG

    раньше открывал в irfan view - тот исправлял расширение сам. а сейчас молчит - словно это корректный jpg, тока антикапча с этим не соглашается

    что делать?
     
  2. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Открывай пыхом, уменьшай на 1 пиксель, сохраняй и шли на антикапчу )
     
  3. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    определяй mime тип и по нему уже смотри
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    преварительно сохранять картинку в нужном тебе формате
     
  5. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    PHP:
    $format explode(".",$img);
    echo 
    $img[1];
     
  6. [QwyZ]

    [QwyZ] Banned

    Joined:
    7 Jul 2009
    Messages:
    71
    Likes Received:
    27
    Reputations:
    5
    header(Mime-type...);

    chto takoe
     
  7. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    или открвай файл и парсь первую строку...там прописаны форматы.
     
    1 person likes this.
  8. Prodex

    Prodex Member

    Joined:
    23 Jun 2009
    Messages:
    8
    Likes Received:
    5
    Reputations:
    0
    $image = getimagesize($pathImage);
    $ex = substr($image['mime'], strpos($image['mime'], '/') + 1);

    В $ex храниться расширение: jpg, jpeg, gif, bmp и т.д.

    А полный print_r($image) выглядит так:

    Array
    (
    [0] => 3264
    [1] => 2448
    [2] => 2
    [3] => width="3264" height="2448"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
    )
     
    4 people like this.
  9. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Дикс уже захлебнулся в ответах))
     
  10. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    спасибо
    тока попробуйте на антикапче загрузить в качестве тестовой капчи любую капчу с контакта
    она даже на странице не отображается!
     
  11. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    $data = file_get_contents('url_to_captcha');
    file_put_contents('cap.jpg', $data);
    Дальше шлеш на антикапчу. Проверяй как ты сохраняеш капчу с вкантакта, у тебюя гдето в синтаксисе ошибка, потому как антикапча не проверяет майм типы, она тупо смотрит на то что после точки, возможно у тебя не .jpg а .JPEG или еще какаято мелко заметная ошибка.
    ЗЫ капчу на вкантакте можно забирать тупо файл_гет_контентом, вкантакт не привязывает сессии и тд к капче.
     
    _________________________
    1 person likes this.
  12. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    господи какой же я идиот
    сохранял тело скачанной капчи вместе с http хидерами