Uma visão geral de como a extensão ImageMagick para PHP pode facilitar o trabalho de editar, transformar, analisar e processar imagens, vídeos e documentos automaticamente.
Serão explicadas tarefas rotineiras como:
- Alterar formatos de imagens.
- Redimensionar e cortar imagens.
- Extrair imagens de páginas de documentos PDF e quadros de vídeos.
- Trabalhar com GIFs animados.
- Aplicar filtros e trabalhar com cores.
- Adicionar texto e elementos a imagens.
- Desenhar e criar formas em imagens.
3. Hoje você vai ver...
●
O que são ImageMagick e Imagick
●
Operações comuns com imagens
●
Operações mágicas com imagens!
30 de Outubro The Developers Conference 2011 3
4. ImageMagick
●
“Photoshop via API”
●
PHP, Perl, Java, Python, Ruby, etc...
●
Centenas de formatos de imagens
30 de Outubro The Developers Conference 2011 4
5. Imagick
●
Extensão PHP para o ImageMagick
●
ImageMagick != Imagick
●
Orientada a objetos
●
pecl install imagick
30 de Outubro The Developers Conference 2011 5
53. [exif:MaxApertureValue] => 3/1
[exif:MeteringMode] => 5
[exif:Model] => KODAK EASYSHARE V803 ZOOM DIGITAL CAMERA
[exif:Orientation] => 1
[exif:ResolutionUnit] => 2
[exif:Saturation] => 0
[exif:SceneCaptureType] => 0
[exif:SceneType] => 1
[exif:SensingMethod] => 2
[exif:Sharpness] => 0
[exif:ShutterSpeedValue] => 966/100
Obtendo Metadados
30 de Outubro The Developers Conference 2011 53
54. Hoje você viu...
●
O que são ImageMagick e Imagick
●
Operações comuns com imagens
●
Operações mágicas com imagens!
30 de Outubro The Developers Conference 2011 54
Autoloading no PHP é um mecanismo para que o carregamento de dependências entre as classes seja resolvido automaticamente. Classes no PHP muitas vezes extendem outras classes, implementam outras interfaces e interagem com outros objetos. Nem sempre as declarações dessas classes estão no mesmo arquivo, e nem é recomendado que estejam. Pode parecer estranho que a maneira de tratar dependências entre classes seja tão flexível e permita que tantas maneiras diferentes de organização surjam, mas isso é consistente com a forma que o PHP trabalha com inclusões desde o começo. Permitir que classes existam em uma estrutura não-fixa, mais de uma por arquivo, em arquivos sem padrão específico de nomenclatura ou localização no sistema de arquivos é uma vantagem que permitiu que sistemas antes projetados para o paradigma procedural pudessem beneficiar-se de bibliotecas e componentes orientados a objetos em futuras atualizações. Mas a flexibilização das dependências entre classes também tem desvantagens. Existem casos nos quais é desejável que haja uma convenção na estrutura para que classes possam ser encontradas facilmente tanto pelo programador quanto pelo sistema. O mecanismo de autoload do PHP funciona como um evento que é disparado sempre que uma classe não é encontrada no sistema. Durante a execução desse evento, o programador pode definir uma rotina que inclui ou define classes dinamicamente. Se a estrutura de arquivos na qual essas classes encontram-se for organizada, esse processo pode ser simplificado. A primeira organização notável de autoloading no PHP talvez tenha se originado no projeto PEAR, que influenciou os projetos Zend Framework e Solar Framework nesse aspecto. Em sua organização, há uma correspondência entre os nomes das classes e os diretórios nos quais elas se encontram. Com base nesse padrão de facto, o PHP Standards Group, que é um grupo de desenvolvedores de projetos open source em PHP, reuniu-se e especificou o padrão de carregamento de classes sob a especificação PSR-0, que possui também uma implementação de referência.
Autoloading no PHP é um mecanismo para que o carregamento de dependências entre as classes seja resolvido automaticamente. Classes no PHP muitas vezes extendem outras classes, implementam outras interfaces e interagem com outros objetos. Nem sempre as declarações dessas classes estão no mesmo arquivo, e nem é recomendado que estejam. Pode parecer estranho que a maneira de tratar dependências entre classes seja tão flexível e permita que tantas maneiras diferentes de organização surjam, mas isso é consistente com a forma que o PHP trabalha com inclusões desde o começo. Permitir que classes existam em uma estrutura não-fixa, mais de uma por arquivo, em arquivos sem padrão específico de nomenclatura ou localização no sistema de arquivos é uma vantagem que permitiu que sistemas antes projetados para o paradigma procedural pudessem beneficiar-se de bibliotecas e componentes orientados a objetos em futuras atualizações. Mas a flexibilização das dependências entre classes também tem desvantagens. Existem casos nos quais é desejável que haja uma convenção na estrutura para que classes possam ser encontradas facilmente tanto pelo programador quanto pelo sistema. O mecanismo de autoload do PHP funciona como um evento que é disparado sempre que uma classe não é encontrada no sistema. Durante a execução desse evento, o programador pode definir uma rotina que inclui ou define classes dinamicamente. Se a estrutura de arquivos na qual essas classes encontram-se for organizada, esse processo pode ser simplificado. A primeira organização notável de autoloading no PHP talvez tenha se originado no projeto PEAR, que influenciou os projetos Zend Framework e Solar Framework nesse aspecto. Em sua organização, há uma correspondência entre os nomes das classes e os diretórios nos quais elas se encontram. Com base nesse padrão de facto, o PHP Standards Group, que é um grupo de desenvolvedores de projetos open source em PHP, reuniu-se e especificou o padrão de carregamento de classes sob a especificação PSR-0, que possui também uma implementação de referência.