コード例 #1
0
ファイル: classe_mapa.php プロジェクト: edmarmoretti/i3geo
 function redesenhaCorpo($tipoimagem, $utilizacgi, $locmapserv)
 {
     ms_ResetErrorList();
     if (file_exists($this->locaplic . "/classe_imagem.php")) {
         include_once $this->locaplic . "/classe_imagem.php";
     } else {
         include_once "classe_imagem.php";
     }
     $nomer = "";
     $qy = file_exists($this->qyfile);
     if ($qy) {
         foreach ($this->layers as $l) {
             $l->set("template", "none.htm");
             carregaquery2($this->arquivo, $l, $this->mapa);
         }
     }
     $legenda = $this->mapa->legend;
     //
     //prepara a legenda para incluir no mapa, preenchendo os nomes das classes que podem estar em branco
     //isso ocorre quando o layer tem s� uma classe
     //
     if ($legenda->status == MS_EMBED) {
         foreach ($this->layers as $layer) {
             if ($layer->data != "" && strtoupper($layer->getmetadata("escondido")) != "SIM" && strtoupper($layer->getmetadata("tema")) != "NAO") {
                 if ($layer->numclasses > 0) {
                     $classe = $layer->getclass(0);
                     if ($classe->name == "" || $classe->name == " ") {
                         $classe->set("name", $layer->getmetadata("tema"));
                     }
                 }
             }
         }
     }
     $nome = nomeRandomico();
     //
     //gera a imagem do mapa
     //se estiver sendo utilizado o cgi para desenhar a imagem
     //é necessário criar uma imagem vazia para capturar o nome que será retornado
     //
     if (isset($utilizacgi) && strtolower($utilizacgi) == "sim" && $tipoimagem == "nenhum" && !$qy) {
         foreach ($this->layers as $l) {
             $l->set("status", MS_OFF);
         }
         $imgo = @$this->mapa->draw();
     } else {
         //if($tipoimagem != "nenhum")
         //{
         $of = $this->mapa->outputformat;
         $of->set("imagemode", MS_IMAGEMODE_RGB);
         //}
         if (!$qy) {
             $imgo = @$this->mapa->draw();
         } else {
             $imgo = @$this->mapa->drawQuery();
         }
         $mensagemErro = "";
         $error = ms_GetErrorObj();
         while ($error && $error->code != MS_NOERR) {
             //printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
             $mensagemErro .= $error->routine . " " . $error->message;
             $error = $error->next();
         }
         ms_ResetErrorList();
         $mensagemErro = str_replace("'", " ", $mensagemErro);
         $mensagemErro = str_replace(":", " ", $mensagemErro);
         $mensagemErro = str_replace("\n", " ", $mensagemErro);
         $nomer = $imgo->imagepath . "mapa" . $nome . ".png";
         $imgo->saveImage($nomer);
         //
         //aplica o filtro de imagem se estiver definido em $tipoimagem
         //
         if ($tipoimagem !== "nenhum") {
             $tiposImagem = explode(" ", $tipoimagem);
             foreach ($tiposImagem as $tipoimagem) {
                 $m = new Imagem($nomer);
                 if ($tipoimagem == "cinza") {
                     imagepng($m->cinzaNormal(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "sepiaclara") {
                     imagepng($m->sepiaClara(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "sepianormal") {
                     imagepng($m->sepiaNormal(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "negativo") {
                     imagepng($m->negativo(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "detectaBordas") {
                     imagepng($m->detectaBordas(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "embassa") {
                     imagepng($m->embassa(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "gaussian_blur") {
                     imagepng($m->gaussian_blur(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "selective_blur") {
                     imagepng($m->selective_blur(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "mean_removal") {
                     imagepng($m->mean_removal(), str_replace("\\", "/", $nomer));
                 }
                 if ($tipoimagem == "pixelate") {
                     imagepng($m->pixelate(), str_replace("\\", "/", $nomer));
                 }
             }
         }
         $nomer = $imgo->imageurl . basename($nomer);
     }
     if ($imgo == "") {
         return "erro";
     }
     $e = $this->mapa->extent;
     $ext = $e->minx . " " . $e->miny . " " . $e->maxx . " " . $e->maxy;
     if (isset($utilizacgi) && strtolower($utilizacgi) == "sim" && !$qy) {
         $nomer = $locmapserv . "?map=" . $this->arquivo . "&mode=map&" . nomeRandomico();
     }
     $res["mapscale"] = $this->mapa->scaledenom;
     $res["mapres"] = $this->mapa->resolution;
     $res["pixelsize"] = $this->mapa->cellsize;
     $res["mapexten"] = $ext;
     $res["mapimagem"] = $nomer;
     $res["w"] = $imgo->width;
     $res["h"] = $imgo->height;
     $res["mappath"] = $imgo->imagepath;
     $res["mapurl"] = $imgo->imageurl;
     $res["erro"] = $mensagemErro;
     return $res;
 }
コード例 #2
0
function filtraImg($nomer, $tipoimagem)
{
    include_once "classe_imagem.php";
    $tiposImagem = explode(" ", $tipoimagem);
    foreach ($tiposImagem as $tipoimagem) {
        $m = new Imagem($nomer);
        if ($tipoimagem == "cinza") {
            imagepng($m->cinzaNormal(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "sepiaclara") {
            imagepng($m->sepiaClara(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "sepianormal") {
            imagepng($m->sepiaNormal(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "negativo") {
            imagepng($m->negativo(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "detectaBordas") {
            imagepng($m->detectaBordas(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "embassa") {
            imagepng($m->embassa(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "gaussian_blur") {
            imagepng($m->gaussian_blur(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "selective_blur") {
            imagepng($m->selective_blur(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "mean_removal") {
            imagepng($m->mean_removal(), str_replace("\\", "/", $nomer));
        }
        if ($tipoimagem == "pixelate") {
            imagepng($m->pixelate(), str_replace("\\", "/", $nomer));
        }
    }
}