include_once __DIR__."/./prefixo.php"; function sendImagem($nomedapasta, $foto, $i, $largura1, $largura2, $nomefoto = null) { //abre função // Prepara a variável do arquivo $arquivo = isset($_FILES[$foto]) ? $_FILES[$foto] : FALSE; if(empty($arquivo['name'])) return $nomefoto; // renomeia a foto original caso haja prefixo if(!empty($nomefoto)){ deleta($nomedapasta."/".$nomefoto); deleta($nomedapasta."/".foto_mini($nomefoto)); $nomefoto = ""; } // Gera um nome único para a imagem $imagem_nome = substr(strtolower(preg_replace("/_/", "-", PREFIXO.titulo_url(semFormato($arquivo["name"])))), 0, 100)."-".date('s').$i.".".formato($arquivo["name"]); // Caminho de onde a imagem ficará $imagem_dir = $nomedapasta."/".$imagem_nome; //imagem nova $imagem_nova = empty($nomefoto) ? $imagem_dir : $nomedapasta."/".semFormato($imagem_nome); // Faz o upload da imagem _normal if(move_uploaded_file($arquivo["tmp_name"], $imagem_dir)); $nomefoto = empty($nomefoto) ? $imagem_nome : $nomefoto; $out = cropIMG2($imagem_dir, $nomefoto, $largura1, $largura2); return $out; } function sendArquivo($foto, $tipo, $pasta, $nomearquivo = "", $i = "1", $optmize = true){ $arquivo = isset($_FILES[$foto]) ? $_FILES[$foto] : FALSE; if(empty($arquivo['name'])) return $nomearquivo; $i = empty($i) ? 1 : $i; preg_match("/\.(".$tipo."){1}$/i", $arquivo["name"], $ext); //renomeia a foto original caso haja prefixo if(!empty($nomearquivo)){ deleta($pasta."/".$nomearquivo); } $arquivo_nome = substr(strtolower(preg_replace("/_/", "-", PREFIXO.titulo_url(semFormato($arquivo["name"])))), 0, 100)."-".date('s').$i.".".formato($arquivo["name"]); $caminho_url = $pasta ."/". $arquivo_nome; if(empty($arquivo_nome)) return FALSE; move_uploaded_file($arquivo["tmp_name"], $caminho_url); // if($optmize && preg_match("/jpg|jpeg|png|gif/", $novaExt)){ // $url = host($_SERVER['HTTP_HOST']).HOST; // $caminho_url = $url.preg_replace("/\./", "", $pasta)."/".$arquivo_nome; // // $optmized = optmizeImage($caminho_url); // // if($optmized != "") // copy($optmized, caminho_url); // } if($ext == "jpg" || $ext === "jpeg"){ optimizeJPG($caminho_url, $caminho_url); }elseif($ext == "png"){ optimizePNG($caminho_url, $caminho_url); } return $arquivo_nome; } function cropIMG2($caminho, $nomefoto, $largura1, $largura2){ if(extension_loaded('imagick')){ $size = list($w, $h, $t, $attr) = getimagesize($caminho); if($w > $h){ if($w > $largura2){ $h = ceil($h * $largura2 / $w); $w = $largura2; } $largura_mini = $largura1; $altura_mini = ceil($h * $largura1 / $w); }else{ if($h > $largura2){ $w = ceil($w * $largura / $h); $h = $largura2; } $largura_mini = ceil($w * $largura1 / $h); $altura_mini = $largura1; } // imagem media $imagick = new \Imagick(realpath($caminho)); $imagick->resizeImage($w, $h, Imagick::FILTER_LANCZOS, 1); $cropWidth = $imagick->getImageWidth(); $cropHeight = $imagick->getImageHeight(); $imagick->setImageCompression(\Imagick::COMPRESSION_ZIP); $imagick->setImageCompressionQuality(90); $imagick->setInterlaceScheme(\Imagick::INTERLACE_PLANE); $imagick->writeImage($caminho); // // imagem mini if($largura1 > 0){ $imagick = new \Imagick(realpath($caminho)); $imagick->resizeImage($largura_mini, $altura_mini, Imagick::FILTER_LANCZOS, 1); $cropWidth = $imagick->getImageWidth(); $cropHeight = $imagick->getImageHeight(); $imagick->setImageCompression(\Imagick::COMPRESSION_ZIP); $imagick->setImageCompressionQuality(90); $imagick->setInterlaceScheme(\Imagick::INTERLACE_PLANE); $imagick->writeImage(foto_mini($caminho)); } // }else{ // VERIFICA A EXTENSÃO DA IMAGEM $ext = strtolower(formato($nomefoto)); // CASO A IMAGEM SEJA JPG if($ext == "jpg" || $ext == "jpeg"){ //abre if //NOME DO ARQUIVO DA MINI $imagem_gerada_mini = explode(".jpg", $caminho); $imagem_gerada_mini = $imagem_gerada_mini[0]."_mini.jpg"; //NOME DO ARQUIVO DA MEDIA $imagem_gerada_media = $caminho; //CRIA UMA NOVA IMAGEM $imagem_orig = imagecreatefromjpeg($caminho); }elseif($ext == "png"){ //NOME DO ARQUIVO DA MINIATURA $imagem_gerada_mini = explode(".png", $caminho); $imagem_gerada_mini = $imagem_gerada_mini[0]."_mini.png"; //NOME DO ARQUIVO DA MEDIA $imagem_gerada_media = $caminho; //CRIA UMA NOVA IMAGEM $imagem_orig = imagecreatefrompng($caminho); }else{ return ""; } //LARGURA $pontoX = imagesx($imagem_orig); //ALTURA $pontoY = imagesy($imagem_orig); $l1 = $largura1; $l2 = $largura2; //se a largura for maior q a altura if($pontoX >= $pontoY){ // DEFINE AS MEDIDAS DA MINI $largura_mini = $largura1; $altura_mini = $pontoY * $largura1 / $pontoX; // DEFINE AS MEDIDAS DA MEDIA if($pontoX > $largura2){ $largura_media = $largura2; $altura_media = $pontoY * $largura2 / $pontoX; }else{ $largura_media = $pontoX; $altura_media = $pontoY; } }else{ $largura1 = $largura1;// - $largura1 / 100 * 20; //$largura2 = $largura2 - $largura2 / 100 * 20; $largura2 = $largura2; // DEFINE AS MEDIDAS DA MINI $largura_mini = $largura1; $altura_mini = $pontoY * $largura1 / $pontoX; // DEFINE AS MEDIDAS DA MEDIA if($pontoY > $largura2){ $largura_media = $pontoX * $largura2 / $pontoY; $altura_media = $largura2; }else{ $largura_media = $pontoX; $altura_media = $pontoY; } } if(!empty($largura1)){ //CRIA O THUMBNAIL MINI $imagem_fin_mini = imagecreatetruecolor($largura_mini, $altura_mini); //COPIA A IMAGEM ORIGINAL PARA DENTRO (MINI) imagealphablending($imagem_fin_mini, true); $color = imagecolorallocatealpha($imagem_fin_mini, 0, 0, 0, 127); imagefill($imagem_fin_mini, 0, 0, $color); imagecopyresampled($imagem_fin_mini, $imagem_orig, 0, 0, 0, 0, $largura_mini+1, $altura_mini+1, $pontoX, $pontoY); imagealphablending($imagem_fin_mini, false); imagesavealpha($imagem_fin_mini, true); } //CRIA O THUMBNAIL MEDIA $imagem_fin_media = $pontoX <= $l2 ? $nomefoto : imagecreatetruecolor($largura_media, $altura_media); //COPIA A IMAGEM ORIGINAL PARA DENTRO (MEDIA) imagealphablending($imagem_fin_media, true); $color = imagecolorallocatealpha($imagem_fin_media, 0, 0, 0, 127); imagefill($imagem_fin_media, 0, 0, $color); imagecopyresampled($imagem_fin_media, $imagem_orig, 0, 0, 0, 0, $largura_media+1, $altura_media+1, $pontoX, $pontoY); imagealphablending($imagem_fin_media, false); imagesavealpha($imagem_fin_media, true); if($ext == "jpg" OR $ext == "jpeg"){ if(!empty($largura1)) //SALVA A IMAGEM (MINI) imagejpeg($imagem_fin_mini, $imagem_gerada_mini, 100); //SALVA A IMAGEM (MEDIA) imagejpeg($imagem_fin_media, $imagem_gerada_media, 100); }elseif($ext == "png"){ if(!empty($largura1)) //SALVA A IMAGEM (MINI) imagepng($imagem_fin_mini, $imagem_gerada_mini); //SALVA A IMAGEM (MEDIA) imagepng($imagem_fin_media, $imagem_gerada_media); } } return $nomefoto; } function enviaZip($input, $destino, $bd = null){ $arquivo = isset($_FILES[$input]) ? $_FILES[$input] : FALSE; $arquivoNome = $arquivo['name']; $arqZip = $arquivo["tmp_name"]; if(formato($arquivoNome) != "zip"){ return FALSE; }else{ $fotos = array(); $zip = new ZipArchive(); $zip->open($arqZip); for($i = 0; $i < $zip->numFiles; $i++){ $entry = $zip->getNameIndex($i); //$fotos[] = $entry; if(formato(strtolower($entry)) == "jpg" || formato(strtolower($entry)) == "gif" || formato(strtolower($entry)) == "png"){ $foto = str_replace($entry, PREFIXO.date("YmdHis")."F".($i+1), $entry.".".formato(strtolower($entry))); //copia para o destino copy("zip://".$arqZip."#".$entry, $destino."/".$foto); if(preg_match("/fotos/", $_SERVER['REQUEST_URI'])){ //faz a foto com marca dagua @marcaDagua(ARQMARCA, $destino."/".$foto, POSMARCA); } //retorna os nomes em array para gravar no banco quando a variavel $bd for setada $fotos[] = $foto; } } //$zip->extractTo($destino); $zip->close(); if($bd){ header('Content-type: text/plain'); return $fotos; }else{ return TRUE; } } } function verificaFile($foto, $nomearquivo = null, $retorno = null){ $arquivo = isset($_FILES[$foto]) ? $_FILES[$foto] : FALSE; if(!empty($arquivo['name']) || !empty($nomearquivo)){ $retorno = $retorno == "" ? TRUE : $arquivo['name']; return $retorno; }else{ return FALSE; } } function validaFile($arquivo, $extensoes){ $file = $_FILES[$arquivo]; if(empty($file['name'])) return; $formato = formato($file['name']); if(!preg_match("/".$extensoes."/i", $formato)) die("Tipo de arquivo inválido!"); } function uploadFile($campo, $dest, $i = 1){ $arq = $_FILES[$campo]; if(empty($arq['name'])) return FALSE; $formato = formato($arq['name']); $formato = $formato == "jpeg" ? "jpg" : $formato; $semFormato = titulo_url(semFormato($arq['name'])); $filename = $semFormato."-".date('s').$i.".".$formato; if(move_uploaded_file($arq['tmp_name'], $dest."/".$filename)) return $filename; return FALSE; }