Newbie: Designer Looking to Build Graphics Editor (PS/AI)

Chris Angelico rosuav at gmail.com
Fri Oct 2 12:57:44 EDT 2015


On Sat, Oct 3, 2015 at 2:41 AM, Kenneth L <kennfletch at gmail.com> wrote:
> I'm a graphic designer. I'm new to Python. I know html, css, alittle actioscript and little javascript. I actually build an iOS using Flash. I understand programming concepts I believe.
>
> I'd like to build a Illustrator/Photoshop like program. Why, there are some features that I'd like to personally have. Example, randomizing the rotation, line height and sizing of text. You have to do this manually. It would be cool have a little program that is dedicated building logos. Not trying to reinvent the wheel. Just basic featuring of vector graphics program plus my enhancements.
> Maybe this program could be base and it can export vector and bring into Photoshop to add finishing touches.
>
> I heard Python is easy to learn. So my question is Python able to do this or connect with libraries? Plus where do I start? I watched python tutorials but they don't really show you how to build an application. How does one build a graphics program? LOL where do you start? How do you draw graphics on the screen?
>
> I'm just confused.

You basically have three options here.

1) Completely write a Photoshop-like program from scratch. There are
libraries that can do the heavy lifting for you (Pillow comes to
mind), but you'd be writing a big and complex UI. This is a huge job.
I recommend not doing this.

2) Find an existing open-source program that does what you want, and
hack on it; or find an existing program that has a plugin/extension
system, and write a plugin. This is a great option if one exists, but
bear in mind that you might have your choices restricted somewhat (eg
you might have to use a specific programming language, or you might
have to fit everything into a single menu item, etc).

3) Build a preprocessor or postprocessor for your images. You'd do
most of your work in a well-known program, and then when you get to
the very last step, you run your output file through a post-processor
(or you run your input files through a preprocessor prior to importing
them). This can work really well in some situations, but it isn't so
great for interactive work. But it's fairly straight-forward; you can
define your program purely in terms of its inputs and outputs, and you
can write it in any language you like.

Have a look into those options, and see what kind of job you're taking
on. (Hint: Options 2 and 3 are *much* smaller jobs than option 1 will
be.) Then decide whether it's within your time budget (don't forget
that you might have to learn some new technologies), and whether it'll
be worth the effort (and it's always more effort than you first think
it will be). And maybe, even if it's not really worth the effort,
it'll be enough fun that you barge ahead and do it anyway :)

ChrisA



More information about the Python-list mailing list