

Image manipulation library for PHP 5.3 - avalanche123
http://imagine.readthedocs.org

======
FuzzyDunlop
This has appeared at just the right time, now I'm re-working my project's
image manipulation classes. The PHP GD library functions are a nightmare for
readability.

I'll be having a little play about with what I intend to implement and if it
works out well I'll likely implement it in my project proper!

> “Why didn’t he keep width and height as simple integer parameters in every
> method that needed those?” or “Why is x and y coordinates are an object
> called Point?”

Seems to me that PHP needs to turn its own primitives into objects so they can
be type hinted. Trying to figure out which of a dozen number validation
functions to use is an utter clusterfuck at the best of times.

------
chrismsnz
It's really good to see some well engineered PHP software coming out.

For my projects I've moved out to Python after having dealt with legacy trash
like Wordpress, Google's api libraries, over-engineered frameworks like ZF and
lets just say the less said about Propel the better.

Code like this, Symfony 2, Doctrine 2, Lithium etc... are a breath of fresh
air. Their obviously written by a group of talented devs and after cutting
ties with legacy PHP versions < 5.3 the future of "modern" PHP is looking
bright!

------
brador
Looks great, but...I clicked on "examples" and expected examples of output in
addition to code examples...Please add these if you have time.

~~~
avalanche123
thanks, will do!

------
snorkel
Whats\With\All\The\Backslashes? Am I only one seeing that in the examples?

~~~
mzarate06
Namespaces, as others have mentioned. The first question I had when I first
encountered that as the Namespace operator was: "Why not the double colon
operator?"

Double colon is already being used for static member referencing, and in a few
talks I've heard from Rasmus, they weren't able to find a way to overload it
for Namespaces.

Another option that was discussed was a triple colon operator, which most were
opposed to b/c of it's length. I personally think the backslash is ugly, and I
kind of like the triple colon operator better b/c of it's similarity to the
double colon operator. Regardless of which one is prettier, I wish the double
colon operator could have been overloaded.

~~~
1880
> _the backslash is ugly_

Not only that, it's very unconfortable to type in some international keyboard
layouts.

~~~
tripzilch
If you're talking about the German layout and AltGr, then so are the []{}
keys, which are already used quite a lot in PHP programming.

It's the main reason why, even though my phyiscal keys are in German layout, I
still have the USA layout in software. It's just nice to be able to make []
with a single key press :)

------
the_mitsuhiko
There goes my unique flask-extension documentation style. :(

~~~
avalanche123
sorry, it looked so awesome and I noticed the kind requirement to use it for
flask-only projects after rolled the new sphinx design out. I promise to use a
different theme and is something I'm working on now.

------
ipsin
Just curious, is there a reason you chose GD over imlib2?

I've used both and I think I prefer imlib2 for flexibility and breadth, and
there's already at least one imlib2 binding for PHP: <http://pp.siedziba.pl/>

~~~
mp3geek
Hasn't been updated in a while? Is it even still supported?

~~~
ipsin
Thanks, I'd seen so many language bindings for imlib2 (and, yes, gd) that I'd
assumed it was an active project, but you're right that it's not. Also gd does
a lot more than it used to.

Thanks for the correction!

------
sunsu
Besides being a great library, its an excellent example of well written PHP
code.

------
bingaling
Looks very nice, a worthy successor to <http://wideimage.sourceforge.net/>

I look forward to using it.

------
johnny22
i am so glad to be reminded of this. Now i just need to implement a filter for
assetic at some point.

Assetic still relies on opti{png,jpeg} which i'm sure works pretty well, but
also requires one to call out to an external program.

