• Как автоматически создать нескольких изображений, наложив одно изображение на другие и трансформировав форму этого изображения в процессе?

    @rPman
    100% готовая библиотека есть, но не нагуглилась, так как задача не такая уж и сложная, ведь все можно сделать заранее.

    Первоначальное фото с маской делать нужно не с белым квадратом малевича, а специально подготовленным изображением на основе шахматной доски с мелкими цветными квадратами (одинаковые цвета не должны быть рядом, просто регулярный ресунок), чтобы слишком большие складки не помешали определить, какой это квадрат

    Полученное фото нужно сравнить с исходным изображением, и разница и будет теми изменениями, которые необходимо делать с целевыми изображениями, перед наложением. Каждый квадрат (область закрашенная одним цветом, чтобы не бодаться с тенями, делать фото нужно с хорошим освещением) на фото связываем с квадратом на изображении (поиск ближайшего того же цвета) а там либо искать центр либо пытаться задетектировать у квадратов углы и брать их за точки, для каждой точки строим вектор сдвига (dx,dy) на который нужно подправить соответствующий квадрат, затем сплайнами считаем эти вектора для каждой точки на изображении, полученную матрицу используем для правки всех фото.

    Ищи библиотеки, с эффектом warping/morphing, те что есть работают по ключевым точкам, как раз те что рассчитываешь по центрам квадратом в моем описании выше.
    Ответ написан
    1 комментарий
  • Почему бот Яндекс Маркета не успевает получить ответ от nginx за 150 секунд, даже код 304 Not Modified?

    alekciy
    @alekciy
    Вёбных дел мастер
    А этот файл формирует бекенд? То, что это происходит ночью наталкивает на мысль бэкапах либо других видах сервисных работ. У вас VDS/VPS?
    Предлагают добавить такой формат лога в основной конфиг:
    log_format  with_time '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for" rqt=$request_time urst=$upstream_response_time';

    В конфиге сервера задается:
    access_log  /путь_до_файла_лога/access.log with_time;

    Это позволит видеть время забора клиентом ответа (большое значение - проблема с клиентом/сетью до клиента) и время ответа бэка (большое значение - проблемы на беке). В зависимости от результатов нужно дальше думать куда двигаться.
    Ответ написан
    2 комментария