Chrizt
Окт. 20, 2011 08:54:53
Здравствуйте.
Многие из нас примерно знают, как получается так, чтобы на белом листе, используя только CMYK получались красивые журнальные картинки и фотки.
Некоторые из нас знают, что, практически в любом векторном редакторе/процессоре (CorelDraw, Adobe Illusttator), ну и в некоторых графических процессорах (Photoshop, Gimp) можно сделать такой эффект вручную или использовать фильтры.
Такая технология называется офсетный растр. Он работает по какому-то определённому, возможно стандартизированному алгоритму, что позволяет нам запрограммировать это.
Однако, мой мозг ещё недостаточно силён, чтобы проделать такое кунг-фу с помощью нашего любимого языка программирования (Python, если что =)). Обращаюсь к Вам, уважаемое комьюнити, с просьбой помочь сделать нечто подобное с помощью PIL или, ещё лучше - PyCairo, коим я сейчас пытаюсь оперировать.
Если вкратце, то необходимо сделать самое простое: нарисовать плоскую фигуру, залить её нужным цветом, нарисовать на ней поверх букву и всё это сделать с эффектом офсетного растра. То есть, создать приближенную видимость, будто изображение “как бы из журнала”.
Вообще, вот список, каких эффектов текстур мне нужно добиться, но я понятия не имею даже с какой стороны подойти к реализации этого.
Вариант с нарезкой паттернов и подстановки их не прокатит в виду того, что невозможно предусмотреть все подобные варианты:
• офсетный растр
• газеты: газетная бумага, картон, крафт
• журналы: мелованная бумага
Пожааалуйста, ну хоть намекните, что можно придумать с этим?
Chrizt
Окт. 20, 2011 11:48:29
Ну хоть как-то намекните, пожалуйста!
Хотя бы, как это делается в фотошопе без фильтров?
А я повторю это в виде кода.
doza_and
Окт. 20, 2011 21:01:29
Насколько я понимаю см (
http://www.descreen.net/rus/help/descreen/home/descreen_manual.htm) офсетный растр - средство борьбы с помехой которая получается при наложении растра сканера на растр сканируемого изображения. Очевидно в результате будет муар. Ни о каком повышении качества исходно компьютерного изображения не может идти речи.
Chrizt
Окт. 20, 2011 21:28:27
ни о каком повышении качества речи и нет.
мне просто нужно наложить «текстуру» офсетного растра на картинку.
как такую текстуру сгенерировать и наложить – вот в чем вопрос.
doza_and
Окт. 20, 2011 22:31:26
Думаю вам подойдет PIL
http://www.pythonware.com/library/pil/handbook/index.htm.Растр можно имитировать и потом перемножить с исходным изображением. Он получается по причине потери параллельности линий растра при растяжении бумаги. Деформацию наверное удобнее описывать функцией комплексного переменного.
doza_and
Окт. 20, 2011 23:08:26
Вы такого эффекта хотите добиться?
from pylab import *
import numpy as np
x=np.linspace(2,30,250)
y=np.linspace(2,30,250)
xx, yy = np.meshgrid(x, y)
A=(np.sin(15*xx)+3)*(sin(16*xx+0.1*(yy+yy**2))+3)
imshow(A,cmap=cm.gray)
show()
Chrizt
Окт. 21, 2011 11:39:02
doza_and
Вы такого эффекта хотите добиться?
Честно, у меня нет возможности найти и уж тем более поставить этот pylab, поэтому прошу Вас, пожалуйста, покажите результат, о котором Вы пишете.
doza_and
Окт. 21, 2011 19:27:56
Если у вас нет возможности ставить библиотеки, то сделать что-то будет очень сложно. В чем собственно у вас сложность с установкой?
Chrizt
Окт. 21, 2011 20:22:57
Вот только издеваться не надо.
Я не знаю, где скачать этот pylab.
Да и ради одного эксперимента ставить не особо хочется.
Если Вам не трудно, покажите, пожалуйста, что Вы в примере Выше демонстрировали.
Может, это оно и есть - что мне нужно.
Chrizt
Окт. 21, 2011 21:06:57
Кстати, а если отвлечься от офсетного растра…
Как правильно наложить, к примеру, синий многоугольник с какой-нибудь белой буквой внутри на текстуру какой-нибудь бумаги (пофигу, мятой или нет)?
В фотошопе есть отдельные фильтры, имитирующие это дело, а вот как это на практике программирования реализуется, особенно в Python - не догоняю.
В ФШ, насколько я помню, нижним слоем должна быть сама текстура, а верхним - накладываемая картинка с режимом смешивания оверлей, что ли.
Ну и главное условие всей этой магии - это чтобы текстура была белой с серым, например.
Могу, конечно, ошибаться на счёт всего этого.