Uma função que gira a imagem de 90 em 90 graus que não utiliza a biblioteca GD a qual deveria ter sido compilada com o Php Nativamente o Php5-cli do Ubuntu não tem a função de girar então eu fiz uma pesquisas e consegui uma maneira de girar as figuras.
Texto
Primeiro podemos aproveitar para verificar na pratica como criar uma janela, um botao , label, GtkEntry, e o Fixed
e como abrir um dialogo para abrir arquivos, a foto girada é mostrada em um objeto dialogo separado.
Como a função que precisariamos a imagerotate não existe entao criamos a image_rotate mas ela so aceita 90,270,180,360 graus (no proximo exemplo eu mostro de grau em grau)
Observo que não foi feito nenhum tratamento na imagem para evitar serrilhado ou perda de cor
para utilizar coloque o programa onde preferir, rode o programa, escolha o angulo, escolha o endereço da figura, mostre a figura e mande girar
no diretorio onde esta o programa surgira um arquivo com o nome imagemgirada
Código
<?php /* *class GiraFixed
*Pretendo mostrar a possibilidade de girar uma figura de 90 em 90 graus *Vc pode tambem pesquisar a biblioteca Gx is a php-gtk2 graphic library - Marc Quinton - june 2006. *Pode tambem verificar o artigo 103 do site kksou *Vou criar um visualizador e depois vc pode girar e ver o resultado no visualizador *a imagem sempre sera salva com o outro nome escolhido *lembre-se que n�o ocorre nenhum tratamento de imagem *Neste exemplo se a imagem tiver transparencia ou alfa ser� perdido, *Neste artigo eu deixei sem alfa de proposito no proximo artigo eu mantenho * *Deveria utilizar a fun��o imagerotate do php5 mas este deve ter sido compilado *com a bliblioteca GD nativa o que n�o ocorre no ubuntu 8.04 e talvez em outros *e tambem nao esta no Php-gtk2b do Pablo para linux no windows n�o tentei * ***Encapsula todo o exemplo do GiraFixed */
/* *metodo construtor *cria a jnela principal */ public function __construct() { $this->window = new GtkWindow(); $this->window->set_title('GiraFixed'); $this->window->set_size_request(800, 640); $this->window->connect_simple('destroy', array('Gtk','main_quit'));
$vbox = new GtkVBox(); $button = new GtkButton('Rotate'); $button->set_size_request(-1,24); $hbox = new GtkHBox(); $hbox->pack_start(new GtkLabel('Angle: '), 0, 0); $angle = new GtkEntry(''); $angle->set_size_request(40, -1); $endereco = new GtkEntry(''); $endereco->set_size_request(200, -1); $button->connect('clicked',array($this, 'on_button'),$angle,$endereco); $hbox->pack_start($angle, 0, 0); $hbox->pack_start(new GtkLabel(' '), 0, 0); $hbox->pack_start($button, 0, 0); $buttonabrir = new GtkButton('Buscar imagem'); $buttonabrir->set_size_request(-1,24);