<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leandro Vieira Pinho´s Blog &#187; w3_image</title>
	<atom:link href="http://leandrovieira.com/archive/tag/w3_image/feed" rel="self" type="application/rss+xml" />
	<link>http://leandrovieira.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 20 Aug 2011 19:22:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Disponível a versão 0.1.1 da classe PHP W3_Image</title>
		<link>http://leandrovieira.com/archive/disponivel-a-versao-011-da-classe-php-w3_image</link>
		<comments>http://leandrovieira.com/archive/disponivel-a-versao-011-da-classe-php-w3_image#comments</comments>
		<pubDate>Fri, 19 Oct 2007 14:06:02 +0000</pubDate>
		<dc:creator>Leandro Vieira</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[w3_image]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/archive/disponivel-a-versao-011-da-classe-php-w3_image</guid>
		<description><![CDATA[Hoje, ao escrever um post sobre como utilizar a classe PHP W3_Image encontrei um bug no método filter da referida classe. Caso fosse utilizado o método filter sem utilizar o método set_image_name encadeado a ele, gerava um erro, uma vez &#8230; <a href="http://leandrovieira.com/archive/disponivel-a-versao-011-da-classe-php-w3_image">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoje, ao escrever um post sobre como utilizar a classe PHP <a href="http://leandrovieira.com/projects/php/W3_Image/">W3_Image</a> encontrei um bug no método filter da referida classe.</p>
<p>Caso fosse utilizado o método filter sem utilizar o método set_image_name encadeado a ele, gerava um erro, uma vez que o método filter não tinha um nome para aplicar a imagem que recebeu o filtro. Mas isso foi corrigido, e agora você pode utilizar o método filter em conjunto ou não ao método set_image_name.</p>
<p>Baixe a <a href="http://leandrovieira.com/projects/php/W3_Image/releases/W3_Image.class-0.1.1.zip">versão 0.1.1 da classe PHP W3_Image</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/disponivel-a-versao-011-da-classe-php-w3_image/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como utilizar a classe W3_Image</title>
		<link>http://leandrovieira.com/archive/como-utilizar-a-classe-w3_image</link>
		<comments>http://leandrovieira.com/archive/como-utilizar-a-classe-w3_image#comments</comments>
		<pubDate>Fri, 19 Oct 2007 13:48:35 +0000</pubDate>
		<dc:creator>Leandro Vieira</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[w3_image]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/archive/como-utilizar-a-classe-w3_image</guid>
		<description><![CDATA[Em um artigo anterior apresentei a vocês a classe PHP W3_Image. Neste post, iremos conhecê-la com mais detalhes, descobrindo todo seu potencial. Vamos lá. Em todos os métodos da W3_Image é preciso informar a imagem que será utilizada. Afinal, ela &#8230; <a href="http://leandrovieira.com/archive/como-utilizar-a-classe-w3_image">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Em um <a href="http://leandrovieira.com/archive/w3_image-php-class">artigo anterior</a> apresentei a vocês a classe PHP <a href="http://leandrovieira.com/projects/php/W3_Image/">W3_Image</a>. Neste post, iremos conhecê-la com mais detalhes, descobrindo todo seu potencial. Vamos lá.</p>
<p>Em todos os métodos da <a href="http://leandrovieira.com/projects/php/W3_Image/">W3_Image</a> é preciso informar a imagem que será utilizada. Afinal, ela precisa saber com quem vai lidar. Porém, podemos simplificar este processo, evitando a necessidade de se informar a imagem toda vez que um método for utilizado.</p>
<p>Há duas formas de fazermos isto: através do <strong>construtor da classe</strong> ou do método <strong>set_image</strong>. Vejamos:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('fotos/planeta.jpg');
$objImg-&gt;set_image('http://static.php.net/www.php.net/images/php.gif');
?&gt;</pre>
<p>No exemplo acima, instanciamos a classe <strong>W3_Image</strong> e em seguida utilizamos o método <strong>set_image</strong>. Em ambos os casos, estamos informando uma imagem, e distintas uma da outra. Porém a imagem informada através do método <strong>set_image</strong> irá sobrepor a imagem informada pelo construtor da classe. Note que em ambos os casos, posso informar à classe a imagem que será utilizada.</p>
<p>Veremos agora como obter informações básicas de uma determinada imagem.</p>
<h2>Como obter o mime-type de uma imagem</h2>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('fotos/planeta.jpg');
$objImg-&gt;set_image('http://static.php.net/www.php.net/images/php.gif');
echo $objImg-&gt;get_mime_type(); // Irá exibir image/gif
?&gt;</pre>
<p>Podemos simplificar; assim:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
echo $objImg-&gt;get_mime_type('http://static.php.net/www.php.net/images/php.gif'); // Irá exibir image/gif
?&gt;</pre>
<h2>Como obter a extensão de uma imagem</h2>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('http://static.php.net/www.php.net/images/php.gif');
echo $objImg-&gt;get_extension(); // Irá exibir gif
?&gt;</pre>
<p>Embora seja necessário informar uma imagem, este processo é muito flexível, fique atento a esse detalhe nos exemplos de uso demonstrados.</p>
<h2>Como obter a largura e altura de uma imagem</h2>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('http://static.php.net/www.php.net/images/php.gif');
$arrSizes = $objImg-&gt;get_sizes(); // Irá retornar um Array
print_r($arrSizes); // Irá imprimir Array ( [0] =&gt; 120 [1] =&gt; 67 [width] =&gt; 120 [height] =&gt; 67 )
?&gt;</pre>
<p>O método <strong>get_sizes</strong> da <strong>W3_Image</strong> retorna um Array super flexivo com a largura e altura da imagem. Tal Array pode ser acessado através dos índices 0 e 1 que retornam a largura e altura, respectivamente. Ou através de associações: width e height. Falei flexível?</p>
<h2>Como obter somente a largura ou altura de uma imagem</h2>
<p>Enquanto o método <strong>get_sizes</strong> retorna um Array com a largura e altura, o método <strong>get_sizex</strong> retorna a largura e o <strong>get_sizey</strong> retorna a altura. Intuitivo?</p>
<p>Exemplo de uso:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('http://static.php.net/www.php.net/images/php.gif');
echo $objImg-&gt;get_sizex(); // Irá exibir 120
echo $objImg-&gt;get_sizey(); // Irá exibir 67
?&gt;</pre>
<h2>Como obter a largura e altura de uma imagem formatados para serem utilizados em uma tag IMG do HTML</h2>
<p>É simples, veja só:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('http://static.php.net/www.php.net/images/php.gif');
echo $objImg-&gt;get_attr(); // Irá exibir width="120" height="67"
?&gt;</pre>
<h2>Como exibir uma imagem no browser</h2>
<p>Através do método <strong>show</strong> da <strong>W3_Image</strong> é possível exibir uma imagem no navegador com seu <strong>mime-type</strong> correto. Este método ainda finaliza a execução do script. Veja um exemplo de uso:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('http://static.php.net/www.php.net/images/php.gif');
$objImg-&gt;show(); // Irá exibir a imagem; logo do PHP
?&gt;</pre>
<h2>Como forçar o download de uma imagem</h2>
<p>Muitas pessoas tem dúvidas de como exibir a janela do navegador para que seja possível <strong>fazer o download de uma imagem</strong>. Utilizando a <strong>W3_Image</strong> é super simples. Observe:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image('http://static.php.net/www.php.net/images/php.gif');
$objImg-&gt;download(); // Irá forçar o download da imagem; logo do PHP
?&gt;</pre>
<h2>Como salvar uma imagem ou como fazer upload de uma imagem</h2>
<p>Fazer upload de uma imagem ou salvá-la é muito, mas muito simples. Através do método <strong>save</strong> da <strong>W3_Image</strong> você pode salvar a imagem onde e como desejar. Observe:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
$imgTmp = $_FILES['image']['tmp_name'];
$objImg-&gt;save($imgTmp); // Irá salvar a imagem no diretório atual.
$objImg-&gt;save($imgTmp,'fotos/mamae.jpg'); // Irá salvar a imagem no diretório fotos como o nome mame.jpg
?&gt;</pre>
<p>Eu disse que é simples?</p>
<h2>Como excluir uma imagem</h2>
<p>Para excluir, deletar, remover uma imagem de um diretório, use o método <strong>delete</strong>. E pronto.</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
$objImg-&gt;delete('fotos-familia/sogra.jpg'); // Irá excluir a imagem da sogra. Coitada?
?&gt;</pre>
<h2>Como criar uma imagem</h2>
<p>É possível criar uma imagem a partir de uma outra já existente. Para isso, utilizamos o método <strong>create</strong> da <strong>W3_Image</strong>.</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
$imgTmp = $_FILES['image']['tmp_name'];
$objImg-&gt;create($imgTmp,400,300,'upload/foto.jpg',85); // Irá criar uma imagem...
?&gt;</pre>
<p>No exemplo acima, fizemos o seguinte: informarmos ao método <strong>create</strong> que iremos utilizar a imagem armazenada na variável <strong>$imgTmp</strong> para criarmos uma nova a partir dela; sendo que a imagem a ser criada terá no máximo 400 pixels de largura, 300 de altura, será salva no diretório upload, como o nome foto.jpg e terá 85% de qualidade aplicada sobre ela. Se esse último parâmetro não for informado, o valor padrão 75% é levado em consideração.</p>
<h2>Como rotacionar uma imagem</h2>
<p>Informe a imagem e a quantidade de graus a girá-la, que o método <strong>rotate</strong> da <strong>W3_Image</strong> faz o restante. Veja:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
$objImg-&gt;rotate('fotos-familia/sogra.jpg',180); // Irá girar a foto da sogra a 180 graus.
?&gt;</pre>
<h2>Como aplicar filtros, efeitos em uma imagem</h2>
<p>Através do método <strong>filter</strong> da <strong>W3_Image</strong>, podemos aplicar diversos tipos de efeitos em uma imagem, como por exemplo: negativo, tons de cinza, detectar bordas dentro da imagem, &#8220;emboss&#8221;, &#8220;gaussianblur&#8221;, &#8220;selectiveblur&#8221;, brilho, contraste, tons de sépia, entre outros.</p>
<p>Alguns efeitos não necessitam de informações adicionais para serem aplicados, apenas diga qual efeito e pronto. Outros precisam de informações para saberem como irão trabalhar. Vejamos alguns exemplos:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
$objImg-&gt;filter('foto.jpg','negate'); // Aplicar um filtro negativo
$objImg-&gt;filter('foto.jpg','grayscale'); // Aplicar um filtro de tons de cinza
$objImg-&gt;filter('foto.jpg','sepia'); // Aplicar um filtro de tom de sepia
$objImg-&gt;filter('foto.jpg','brightness',30); // Aplicar 30 de brilho sobre a imagem
?&gt;</pre>
<p>Observe os demais tipos de filtros na <a href="http://leandrovieira.com/projects/php/W3_Image/documentation.htm">documentação da W3_Image</a>.</p>
<h2>Como utilizar e qual a vantagem do método set_image_name da W3_Image</h2>
<p>O método <strong>set_image_name</strong> da <strong>W3_Image</strong> é muito útil ao se trabalhar com os métodos <strong>rotate</strong> e <strong>filter</strong>, uma vez que ao utilizá-lo a imagem original é mantida e uma nova é criada com o efeito aplicado. Exemplo:</p>
<pre>&lt;?php
require_once 'class/W3_Image.class.php';
$objImg = new W3_Image;
$objImg-&gt;set_image_name('foto-negativa.jpg')-&gt;filter('foto.jpg','negate'); // Exemplo de uso do método set_image_name
?&gt;</pre>
<p>Ao utilizar o método <strong>set_image_name</strong> observe que utilizamos um encademanto de métodos, ou <strong>chaining</strong> (recurso conhecido entre aqueles quem utilizam a <a href="http://jquery.com">jQuery</a>).</p>
<p>Ufa, finalizamos vários exemplos de uso de como utilizar a classe PHP W3_Image. Faça testes, envie-me seu feedback, consulte a documentação e até breve.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/como-utilizar-a-classe-w3_image/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>W3_Image PHP class</title>
		<link>http://leandrovieira.com/archive/w3_image-php-class</link>
		<comments>http://leandrovieira.com/archive/w3_image-php-class#comments</comments>
		<pubDate>Thu, 18 Oct 2007 12:56:21 +0000</pubDate>
		<dc:creator>Leandro Vieira</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[w3_image]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/archive/w3_image-php-class</guid>
		<description><![CDATA[W3_Image é uma classe em PHP que utilizo para realizar diversas operações com imagens via PHP. A partir de hoje, ela será pública, e poderemos discutir a respeito de suas funcionalidades. Embora ela esteja imatura, em sua versão 0.1, julgo &#8230; <a href="http://leandrovieira.com/archive/w3_image-php-class">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://leandrovieira.com/projects/php/W3_Image/">W3_Image</a> é uma classe em <a href="http://php.net">PHP</a> que utilizo para realizar diversas operações com imagens via PHP. A partir de hoje, ela será pública, e poderemos discutir a respeito de suas funcionalidades.</p>
<p>Embora ela esteja imatura, em sua versão 0.1, julgo um momento adequado para apresentá-la. Uma vez que quanto mais pessoas a utilizam, novas possibilidades de uso surgem, bugs são encontrados, recursos são questionados e com isso ela vai amadurecer e definir sua personalidade.</p>
<p>O principal objetivo  é que ela seja simples, com uma linha de aprendizagem super baixa e que seus métodos sejam intuitivos. Quando eu programo, gosto de conversar com os códigos, por isso julgo que todos scripts, classes e afins devem ser intuitivos, para que o nosso bate-papo não seja unilateral.</p>
<p>Por exemplo, com os métodos da <a href="http://leandrovieira.com/projects/php/W3_Image/">W3_Image</a> o que se deve ter em mente ao utilizar seus métodos é o seguinte: o quê (neste contexto, qual recurso a ser aplicado); quem/qual (neste contexto, qual imagem); como (neste contexto, quais os parâmetros).<br />
Como disse que ela ainda está imatura, não significa que ela não dispõe de recursos interessantes. Com a <a href="http://leandrovieira.com/projects/php/W3_Image/">W3_Image</a> é possível:</p>
<ul>
<li>Obter o mime-type de uma imagem;</li>
<li>Obter a extensão de uma imagem;</li>
<li>Obter suas dimensões, ou uma dimensão específica: largura ou altura;</li>
<li>Exibir uma imagem;</li>
<li>Força o download de uma imagem;</li>
<li>Salvar uma imagem;</li>
<li>Renomear uma imagem;</li>
<li>Excluir uma imagem;</li>
<li>Criar imagem;</li>
<li>Rotacionar uma imagem;</li>
<li>Aplicar filtros numa imagem;</li>
</ul>
<p>Em versões futuras virão novos recursos, como: marca d&#8217;água, corte, desenhos, legendas, &#8220;flip&#8221;, redimensionar, log de erros, entre outros.</p>
<p>Faça o <a href="http://leandrovieira.com/projects/php/W3_Image/releases/W3_Image.class-0.1.zip">download da versão 0.1 da W3_Image</a>, consulte sua <a href="http://leandrovieira.com/projects/php/W3_Image/documentation.htm">documentação</a> e aguarde por novos posts abordando seus métodos.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/w3_image-php-class/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

