Форум сайта python.su
0
Всем доброго дня.
У нас в учетной системе есть фотографии товаров. Хранятся в БД. Подавляющее большинство фотографий содержит белые края, порой очень даже большие. Появилась потребность взять и избавиться от них, но сделать это программным путем.
Использую скрипт на питоне который анализирует фото, предварительно выгруженное из базы в файл, если края белые, то обрезает их до 20-ти пикселей и полученное изображение сохраняет в новый файл.
Но есть две проблемы:
1) В учетной систем после вызова WinAPI::shellExecute() с параметром _waitForCompletion = true, проверяем наличие созданного файла и его нет. Если поставить задержку 700-900 милисекунд, то файл появляется. Т.е учетная система получила отклик что выполнение закончилось, идет дальше по коду, а файла нет.
Мы думаем что после выполнения скрипта сборщик мусора производит свои манипуляции и только в этот момент происходит окончательная запись в файл. Может можно его как-то заставить мгновенно сохранять?
2) Фотографии хранятся в разных форматах (jpg и png). Скрипт преобразовывает png в jpg, при этом на фото появляются шумы.
Добавил в скрипт
fileCreated = False retryCnt = 5 idx = 1 while fileCreated == False and idx <= retryCnt: if os.path.isfile(outp_dir + '/' + file_name): fileCreated = True print('exist') else: time.sleep(300); print(300)
Офлайн
44
не чего не понятно
зы вам наверное нужно успокоиться перечитать свое сообщение и разложить для себя по полочкам … ну и сюда после …
(задайте себе вопрос - что из вашего сообщения поймет постороний человек?)
ззы не знаю что у вас за проблемы но time.sleep(300) это точно не решение (и даже не костыль) так как зависит от машины и не зависит от работы программы
и вставьте ссылку на его url Отредактировано AD0DE412 (Март 6, 2020 19:22:40)
Офлайн
857
smailikУ тебя один скрипт должен преобразовывать фотографию правильно и больше ничего не делать.
Но есть две проблемы:
1) В учетной систем после вызова WinAPI::shellExecute() с параметром _waitForCompletion = true, проверяем наличие созданного файла и его нет. Если поставить задержку 700-900 милисекунд, то файл появляется. Т.е учетная система получила отклик что выполнение закончилось, идет дальше по коду, а файла нет.
Мы думаем что после выполнения скрипта сборщик мусора производит свои манипуляции и только в этот момент происходит окончательная запись в файл. Может можно его как-то заставить мгновенно сохранять?
smailikСначала ты должен приготовить фотографию для преобразующего скрипта, чтобы она была в правильном формате.
2) Фотографии хранятся в разных форматах (jpg и png). Скрипт преобразовывает png в jpg, при этом на фото появляются шумы.
Отредактировано py.user.next (Март 8, 2020 02:03:19)
Офлайн