Работа с изображением

rolporty

Новичок
Работа с изображением

Есть сайт, на него загружается изображение.
У каждого изображения создается пиктограмма 120*90(фиксированный размер) и хранится рядом с оригиналом.
Если изображения не походит по пропорциям к 4:3 то оно подгоняется в зависимости от её реальной высоты.
то есть изображение сделанное при повернутом фотоаппарате будет иметь пропорции 3:4 и после создания миниатюрки и ресайза её мы получаем 120*90 с белыми полями по бокам, чтобы вписать всю фотку.

Вопрос в следующем, есть ли алгоритмы, готовые решения, для того чтобы убрать эти (пусть будут белые) блоки и получить реальное изображение без бекграундов, то какое оно есть?
 

zerkms

TDD infected
Команда форума
если фото из фотика было 768 х 1024 (3:4), то после ресайза со вписыванием в 120х90 оно должно было стать 67.5 х 90.
безо всяких белых полей.
 

zerkms

TDD infected
Команда форума
rolporty
не прощаю. вопрос именно в этом.
Вопрос в следующем, есть ли алгоритмы, готовые решения, для того чтобы убрать эти (пусть будут белые) блоки и получить реальное изображение без бекграундов, то какое оно есть?
ответ: генерить изображения без белых блоков.
 

rolporty

Новичок
изображения уже есть и с белыми блоками и их около 80k.

собственно как это происходит
 

zerkms

TDD infected
Команда форума
rolporty
повторю ещё раз: после генерации из картинки с пропорциями 3:4 тумбочки её размер должен быть 67.5х90, а не 120х90
тогда белых блоков по краям не будет.
приём, как слышно?
 

Фанат

oncle terrible
Команда форума
кстати, да.
ищется-то какое решение? которое будет делать 67.5х90 из 120х90?
 

rolporty

Новичок
она вписывается в картинку 120*90 и это констанка. несмотря на то какие пропорции получились все миниатюрки размером 120*90.

Повторюсь
Вопрос в следующем, есть ли алгоритмы, готовые решения, для того чтобы убрать эти (пусть будут белые) блоки и получить реальное изображение без бекграундов, то какое оно есть?
-~{}~ 26.05.09 17:23:

to *****
да да да.
 

zerkms

TDD infected
Команда форума
rolporty
если "убрать" белые блоки, то останется картинка с габаритами 67.5х90. приём.
 

Фанат

oncle terrible
Команда форума
мне кажется, что готовых нету. никто не делает превьюшки с белыми полями, чтобы потом их обрезать. но поищи в гугле на всякий случай. или сам пиши
 

zerkms

TDD infected
Команда форума
тогда почему бы сразу не делать одним действием:

NxM -> 67.5x90

вместо 2х:

NxM -> 120x90 -> 67.5x90
 

rolporty

Новичок
Автор оригинала: zerkms
rolporty
если "убрать" белые блоки, то останется картинка с габаритами 67.5х90. приём.
В этом и есть вопрос, как их убрать у уже существующих изображений?

-~{}~ 26.05.09 17:27:

Автор оригинала: zerkms
тогда почему бы сразу не делать одним действием:

NxM -> 67.5x90

вместо 2х:

NxM -> 120x90 -> 67.5x90
Это понятно. но вот их уже существует очень много. К сожалению даже гугл не ответил мне. жаль
 

zerkms

TDD infected
Команда форума
*****
бьюсь об заклад, что человек ищет алгоритм чтобы не перегенерировать 80к картинок. и при этом считает, что алгоритм анализа и умной обрезки будет в итоге быстрее, чем тупо перегенерить жалкие 80к.
и это при том, что:
1. это уже полчаса обсуждается на форуме
2. ещё полчаса будет искаться велосипед
3. даже если найдётся - велосипед будет ещё с час заводиться и отлаживаться. потом проверяться вручную (!!!) что он не наобрезал ничего лишнего

вместо того, чтобы потратить 10 минут и перегенерить всё раз и навсегда правильно.

аминь.
 

zerkms

TDD infected
Команда форума
rolporty
ищи. потом в итоге отпишись сюда плиз, сколько времени у тебя ушло на поиски алгоритма, его реализацию и отладку, ну и генерацию в сумме.
посмеёмся хоть :)

алгоритм, кстати, по идее несложный. берём пикселы и ищем последний вертикальный ряд белых слева и справа.
 

prolis

Новичок
Алгоритм в директории с фотками:
1.Оценить размер оригинального файла
2.Если не 4x3 - то
а) crop рамки (арифметика) или
б) сгенерить новый превью
3.Повторить для следующего файла
 

Фанат

oncle terrible
Команда форума
кстати, да. наконец-то и до меня дошло.
нафига искать обрезалку полей, если можно просто перегенерить превьюшки?
 
Сверху