-
Notifications
You must be signed in to change notification settings - Fork 34
Generate preview for images #567
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
||
// The value could be between 0.0 and 1.0 where 0.0 indicates the minimum quality | ||
// and 1.0 indicates the maximum quality. | ||
private static final double QUALITY = 0.5; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Качество и размеры изображения выбраны практически наугад. Позже можно будет их изменить.
Generated by 🚫 Danger |
Хочу с вами обсудить, как минимум, следующие вопросы:
|
Я нашел подход, который поможет со всеми этими вопросами: превью нужно создавать не сразу же вместе с серией и изобржением, а позже, при первом запросе превью. Это решит вопрос создания превью для уже существующих изображений; создание серии будет более быстрым и менее подверженым ошибкам; кроме того не придется дублировать код для создания превью в двух местах (при создании серии и добавлении дополнительного изображения). |
60e57d4
to
8ccfb89
Compare
Я бы предложил в таблицу со ссылками на изображения, добавить поле preview_ready. При подгрузке новых изображений по умолчанию устанавливать значение false. |
@AleksSPb Спасибо, что присоединился! Я думал о такой возможности, но она а) добавляет много кода б) ничего не улучшает. Попробую обьяснить последний пункт: после создания серии пользователь перенаправляется на страницу с информацией об этой серии. На ней есть изображение и таким образом при открытии страницы превью либо уже должно быть, либо оно должно быть сгенерировано. Т.е. запускать фоновый процесс не имеет смысла, так сразу же после добавления изображения мы должны сделать превью и вернуть его. Фоновый процесс может либо не успеть, либо, что хуже, начать делать превью одновременно с запросом, который генерирует превью на лету. |
P.S. Идея хорошая, но какую проблему мы этим решим? В текущем подходе мы можем определить есть превью или нет путем либо проверки существования файла (на проде), либо поиском в таблице image_content (встроенная БД). Т.е. этот механизм и есть замена полю preview_ready, только поле статичное, а проверка динамическая. В случае с полем, также появится шанс, что файла на файловой системе нет, а preview_ready установлена в true. Короче, чем больше флагов, тем сложнее состояние и больше шансов внести ошибку. Если сейчас мне понадобится пересобрать превью на проде, то я должен буду просто удалить изображение в каталоге. Если у нас будет флаг, то кроме удаления изображения, мне придется также выпольнить SQL-запрос для обновления этого поля. Я бы даже приделал это поле, если бы оно решало, что-то что не решается в текущем подходе. |
В такой постановке - лучше твоего решения не найти! 👍 |
8ccfb89
to
30d8478
Compare
Changes Unknown when pulling 30d8478 on gh387_image_preview into ** on master**. |
30d8478
to
d484da4
Compare
Changes Unknown when pulling d484da4 on gh387_image_preview into ** on master**. |
d484da4
to
6fd957e
Compare
Changes Unknown when pulling 6fd957e on gh387_image_preview into ** on master**. |
6fd957e
to
15b632f
Compare
Merged in 5937d16 commit. |
@Shkarin @Shagbark please, review this code and don't hesitate to ask any questions.
TBD:
Addressed to #387