Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Леонид Каганов ([info]lleokaganov)
@ 2017-02-06 16:39:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:программирование, разбираю фото

про картинки
это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2017/02/07.html

Внезапно на НТВ реклама Олюшки и авторских автостопных рюкзаков Алексея Ворова. Как нам сказали, была тема про лондонское метро и видимо редактор нагуглил подходящую картинку:

Пользуясь случаем, скажу, что вполне приветствую и разрешаю любое использование иллюстраций из моего блога (License Public). Олька, правда, пошутила, что можно подать в суд, но я напомнил, что я — как раз тот самый человек, который сам вчера сваял робота, который выкачал мне из интернета 5000 чужих картинок для одного моего программного проектика, связанного с английским языком (о нем расскажу позже).

При этом, кстати, оказалось, что API поиск по картинкам в Гугле и Яндексе давно забанен про причине несусветной жадности этих монстров. А нам, разработчикам, остался только API от Microsoft. Что наконец впервые подтверждает мою позицию: будучи убежденным противником Microsoft всю свою сознательную жизнь и всячески радуясь потерям его позиций год от года, я при этом всегда подчеркивал, что я не враг Microsoft, и что Microsoft следует всячески беречь, уважать, холить и лелеять, чтобы он ни в коем случае не умер. А жил вечно, создавая здоровую честную конкуренцию всем остальным IT-монстрам. И вот в моей жизни это первый случай (не считая нежной мною любимого Winword — к нему хоть есть аналоги), когда Microcoft дает технологию, которой не могут (или не хотят) дать подлые конкуренты. В общем, от всей души большое спасибо Microsoft за тот редкий сервис, который нам отрезали подлецы из Google и Yandex! Впрочем, Microsoft не был бы Microsoft, если бы его сайт не тормозил, регистрация не была бы столь крива, а описание и настройки API не были бы такими запутанными, не подвисали и не глючили:

Но глючил только сайт. Само API работает на удивление быстро, рекомендую. Всем интересующимся выкладываю пример рабочего скриптика, который на каждое из заданных слов выкачивает про 3 картинки. На сервисе у Microsoft надо только зарегистрироваться и получить ключ с правом 5000 бесплатных запросов в месяц (мой ключ, что вы видите в примере, разумеется, изменен для публикации, и работать у вас не будет):

#!/usr/bin/php
<?php
// API: https://msdn.microsoft.com/en-us/library/mt712546.aspx
// API: https://www.microsoft.com/cognitive-services/en-US/subscriptions
$KEY="4fecdb04b9ad4837b6867b12b3cf8fa6";
$WORDS=array('хуй','пизда','джигурда');
$NFOTOS=3;
foreach($WORDS as $q) {
    $o=exec("curl -v -X GET 'https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=".urlencode($q)
    // ."&license=Public&color=White&imageType=Clipart"
    ."' -H 'Ocp-Apim-Subscription-Key: ".$KEY."'");
    $stop=$NFOTOS; $p=(array)json_decode($o); if(!isset($p['value']) || empty($p['value'])) echo "`$q` not found\n";
    else foreach($p['value'] as $i=>$e) { if(!$stop--) break; $e=(array)$e;
    exec('curl -v "'.$e['thumbnailUrl'].'" > "'.$q.'-'.$i.'.jpg"');
    }
}
?>

Для моей задачи оставалось лишь скачать по 5 картинок на каждое из 1000 слов и сделать веб-апликуху, которая бы позволяла оператору выбрать одним кликом мышки более подходящую для каждого из слов. Слова в моем словаре были простые "зайчонок", "медвежонок", "змееныш", найти к ним картинки для Microsoft было несложно. Проблем возникло две.

Во-первых, картинки Публичной Лицензии глючили. Например по слову "зайчонок" и "лисенок" они показывали каких-то размалеванных школьниц из соцсетей. Пришлось положить болт на авторские права (собственно, к чему я всю эту историю и вспомнил) и отказаться от публичной лицензии.

Неожиданная проблема возникла лишь с некоторыми словами. Например по слову "змееныш" поиск упорно давал обложки каких-то говнокниг серии "S.T.A.L.K.E.R":

Но штука полезная, рекомендую. Я вот думаю, не сделать ли на Бинонике сервис подбора картинки к посту? У Биноника наступает, кстати, вторая жизнь: сейчас заменим серверную часть и займусь им вплотную.



это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2017/02/07.html