Sistema de redimensionar imagens com zip e Pic
Postado por: Anderson Custódio de Oliveira emVamos a um exemplo simples de como usar o Pic no desenvolvimento de sistemas, não esqueça de verificar se o PHP está com suporte para ZIP.
No exemplo abaixo você terá um formulário onde escolhe o nome da pasta e um arquivo zip com fotos, o sistema irá criar a pasta com o nome escolhido, redimensionar as fotos pra um tamanho “médio” salvar na pasta media e repetirá processo na pasta pequena só que a imagem ficará bem menor e sem logo.
Você pode usar o seguinte logo como exemplo, é só salvar na mesma pasta do sistema com o nome logo.png: http://img191.imageshack.us/img191/5952/logounn.png
< ?php
include 'pic/pic.class.php';
$zip = new ZipArchive;
$image = new Pic;
if (isset($_POST['enviar'])) {
if ($zip->open($_FILES['fotos']['tmp_name'])) {
$zip->extractTo('./');
for($i = 0; $i < $zip->numFiles; $i++) {
if ($image->open($zip->getNameIndex($i))) {
$image->photo('width:600px;height:400px;overflow:hidden;');
$image->layer('logo.png', 'right:10px;bottom:10px;opacity:90;');
$image->save($_POST['pasta'] . '/media/' . ($i + 1) . '.jpg');
$image->reset(); //reseto as mudanças para o thumbnail ficar sem logo
$image->thumbnail('width:128px;height:128px;left:auto;');
$image->save($_POST['pasta'] . '/pequena/' . ($i + 1) . '.jpg');
$image->clear();
$image->delete();
}
else
unlink($zip->getNameIndex($i));
}
unset($_FILES['fotos']['tmp_name']);
echo "ok";
}
else
echo "inválido";
$zip->close();
}
?>
<form method="post" enctype="multipart/form-data">
<fieldset>
<legend>Envie suas fotos zipadas</legend>
<label>Pasta: <input type="text" name="pasta"/></label>
<label>Fotos: <input type="file" name="fotos"/></label>
</fieldset>
<input type="submit" name="enviar" value="Enviar"/>
</form>
Com isso você tem uma boa base para criar um sistema de fotos bem bacana. :)













[...] This post was mentioned on Twitter by Pinceladas da Web and Abraão Levi, ac. ac said: RT @pinceladasdaweb: Sistema para redimensionar imagens com ZIP e a Classe Pic: http://migre.me/3MEVV via @acustodioo [...]