Вылетать стало после того как я удалил свой пост про ссылку на торретнт. Может в базе ошибка и плюсы и минусы выпутываются полсе удаления топика с ними. Проверьте этот момент!
Эту дему полностью от и до сделал я — алешенька. Я подговорил сирила выложить ее от его лица, специально сделал с ошибками свойственными новичкам. Это я сделал чтобы выявить дву личных людей не любящих Алешку на этом портале. У меня все получилось! спасибо Сирил, что подыграл!
Конечно же дему такого уровня никто из Вас тут сидящих не сможет сделать на запиляторе. Потом что дерево это 30 спрайтов, а ваабще было 60. Дом со шторой 6 спрайтов, одного знаменитишего на весь мир художника стиля Анима. А надписи, это более 10 фаз ручной ААА работы. Вылеты придуманы из головы. Вообщем эта дема занимает 100 кб. В остатке 20. Тут нереальных 2 дневный труд. Конечно я специально сделал дерево и штору в заскок. Цвета сделал подобно демам новичков, бесвкусно черно белые. Но музыка и общая оранжировка все равно вытянула эту дему.
В случае с маской добавляется дополнительный фильтр: сначала смотрим, есть ли в текущем знакоместе маски 2 разных цвета (ч/б), или всё белое: если да — то знакоместо значащее и его оценка сохраняется. А если в знакоместе маски только чёрный цвет — то знакоместо незначащее и оценка у него 0.
Что ещё можно сказать: так как первая задача решается с помощью командной строки: работа её происходит медленнее, если бы эти же самые преобразования происходили с помощью библиотеки и прямо в памяти и не было бы открытия исходника каждый раз заново — всё работало бы быстрее. После преобразования картинки можно было бы сразу выполнить оценку — и не сохранять целиком всё изображение, а только параметры преобразования и оценку.
ну там миллионы настроек, наверняка есть на порядок оптимальнее. я хз зачем именно xvid, но с libx264 конфигом, с добавлением лишь -vf scale=iw*2:ih*2 -sws_flags neighbor, ни запись не тормозит, и видео получается чоткое и битрейт в разы ниже.
Вся оценка умещается в следующую функцию:
на вход которой поступает img — картинка, px и py — координаты знакоместа (в пикселях):
def eval_cell(img,px,py) cell = img.get_pixels(px,py,8,8)# получаем массив пикселей 8x8 (64) по коодинатам px и py
rcell = cell.reduce(Hash.new(0)) {|a,b| a[b] += 1;a}#из массива конструируем словарь/хэш у которого ключ — это цвет пикселя(сам пиксель), а значение — количество этих пикселей в массиве
acell = rcell.values.sort.reverse[2,64]#получаем массив пикселей, ниже второго места по распространённости в нашем знакоместе — «потерянные» пиксели bcell = acell != nil? acell: [0]# если таких не было (в знакоместе только один или два цвета) — то создаём массив из одного элемента, равный нулю. err = bcell.inject(0, &:+)# суммируем элементы массива — получаем сумму «потерянных» пикселей в знакоместе end
То на первом этапе получим хэш 1=>44, 0=>16, 2=>3, 3=>1
затем получим все, что ниже «второго места»: 3, 1
затем суммируем: 4.
«Штрафной рейтинг» знакоместа = 4.
www.youtube.com/watch?v=K5h0LfztJG0
Конечно же дему такого уровня никто из Вас тут сидящих не сможет сделать на запиляторе. Потом что дерево это 30 спрайтов, а ваабще было 60. Дом со шторой 6 спрайтов, одного знаменитишего на весь мир художника стиля Анима. А надписи, это более 10 фаз ручной ААА работы. Вылеты придуманы из головы. Вообщем эта дема занимает 100 кб. В остатке 20. Тут нереальных 2 дневный труд. Конечно я специально сделал дерево и штору в заскок. Цвета сделал подобно демам новичков, бесвкусно черно белые. Но музыка и общая оранжировка все равно вытянула эту дему.
Учитесь, дети делать демо!
на вход которой поступает img — картинка, px и py — координаты знакоместа (в пикселях):
def eval_cell(img,px,py)
cell = img.get_pixels(px,py,8,8) # получаем массив пикселей 8x8 (64) по коодинатам px и py
rcell = cell.reduce(Hash.new(0)) {|a,b| a[b] += 1;a} #из массива конструируем словарь/хэш у которого ключ — это цвет пикселя(сам пиксель), а значение — количество этих пикселей в массиве
acell = rcell.values.sort.reverse[2,64] #получаем массив пикселей, ниже второго места по распространённости в нашем знакоместе — «потерянные» пиксели
bcell = acell != nil? acell: [0] # если таких не было (в знакоместе только один или два цвета) — то создаём массив из одного элемента, равный нулю.
err = bcell.inject(0, &:+) # суммируем элементы массива — получаем сумму «потерянных» пикселей в знакоместе
end
то есть, предположим у нас есть массив:
1,1,1,1,1,1,1,1
1,1,1,1,1,1,1,1
1,1,1,1,0,0,0,0
1,1,1,1,0,0,0,0
1,1,1,1,0,0,0,0
1,1,1,1,2,2,2,3
То на первом этапе получим хэш 1=>44, 0=>16, 2=>3, 3=>1
затем получим все, что ниже «второго места»: 3, 1
затем суммируем: 4.
«Штрафной рейтинг» знакоместа = 4.
Повторить 768 раз =)
Нам уже сообщили!
Вот ещё парочка: