Php

Convertir une image en Canvas HTML5 en PHP

Rédigé par BeHuman - - aucun commentaire

Pour le fun je me suis fait un script PHP qu me converti une image en tableau HTML

 

 

<?php
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
function genImg($filename, $opacity="1") {
    if ( ( preg_match('/.*\.png$/i',$filename) || preg_match('/.*\.jpg$/i',$filename) || preg_match('/.*\.gif$/i',$filename) ) &&  file_exists($filename) ) {
        if (preg_match('/.*\.png$/i',$filename)) {
            $im = imagecreatefrompng($filename);
        } else if (preg_match('/.*\.jpg$/i',$filename) || preg_match('/.*\.jpeg$/i',$filename) ) {
            $im = imagecreatefromjpeg($filename);
        } else if (preg_match('/.*\.gif$/i',$filename)) {
            $im = imagecreatefromgif($filename);
        }
        $npx=0;
        $size = getimagesize($filename);
        $html= "<canvas id='myCanvas'  style='border:0px none; width:".$size[0]."px!important;height:".$size[1]."px;' width='".$size[0]."px' height='".$size[1]."px'>Your browser does not support the HTML5 canvas tag.
</canvas><script>var c = document.getElementById('myCanvas');
var ctx = c.getContext('2d');";
        for ($i=1; $i<=$size[1]-1; $i++) {
            for ($ii=1; $ii<=$size[0]-1; $ii++) {
                $rgb = imagecolorat($im, $ii, $i);
                $r = ($rgb >> 16) & 0xFF;
                $g = ($rgb >> 8) & 0xFF;
                $b = $rgb & 0xFF;
                $html.= "ctx.fillStyle = \"rgba(".$r.",".$g.",".$b.",".$opacity.")\";";
                $html.= "ctx.fillRect(".$ii.",".$i.",1,1);";
            }
        }
        $html.= "</script>";
    }
    return $html;
}

$fl="ex-img2html/php.jpg";
if (file_exists($fl)) {
    echo "<u>Image d'origine :</u><br>".
        "<img src='".$fl."'><br><br>".
        "<u>Image convertie :</u><br>".
        genImg($fl);
}

 

Voir la démo

++

Récupérer les couleurs des bordures d'une image en PHP

Rédigé par BeHuman - - aucun commentaire

 

Salut,

Cette petite routine vous permettra de récupérer les couleurs des bordures d'une image et de retourner un pourcentage de corrélation. Cela me permet de détecter les images n'ayant pas de fond blanc pour le catalogue Google par exemple.

function scanImgBorderColor($filename, $ro=255, $go=255, $bo=255) {
    if ( ( preg_match('/.*\.png$/',$filename) || preg_match('/.*\.jpg$/',$filename) || preg_match('/.*\.gif$/',$filename) ) &&  file_exists($filename) ) {
        if (preg_match('/.*\.png$/',$filename)) {
            $im = imagecreatefrompng($filename);
        } else if (preg_match('/.*\.jpg$/',$filename) || preg_match('/.*\.jpeg$/',$filename) ) {
            $im = imagecreatefromjpeg($filename);
        } else if (preg_match('/.*\.gif$/',$filename)) {
            $im = imagecreatefromgif($filename);
        }
        $npx=0;
        $size = getimagesize($filename);
        for ($i=1; $i<=$size[0]-1; $i++) {
            $rgb = imagecolorat($im, 1, $i);
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
            if ($r < $ro && $g < $go && $b < $bo ) {
                $npx++;
            }
            $rgb = imagecolorat($im, $size[1]-1, $i);
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
            if ($r < $ro && $g < $go && $b < $bo) {
                $npx++;
            }
        }
        
        for ($i=1; $i<=$size[1]-1; $i++) {
            $rgb = imagecolorat($im, $i, 1);
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
            if ($r < $ro && $g < $go && $b < $bo) {
                $npx++;
            }
            $rgb = imagecolorat($im, $i, $size[0]-1);
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
            if ($r < $ro && $g < $go && $b < $bo) {
                $npx++;
            }
        }
        $allpx=(($size[0]-1)*2)+(($size[1]-1)*2);
        $endpx=100-(($npx/$allpx)*100);
        return $endpx;
    }
}

if (scanImgBorderColor('img001.png', 250, 250, 250)>=90) {
    //image ok
} else {
    //image trop sombre
}

voilii voiloo ++

Démonstration vidéo du 15 Juin 2013 de ShadowSpace

Rédigé par BeHuman - - 1 commentaire

ShadowSpace est un jeu en cours en développement en WebGL. Le principal objectif est de développer un MMORPG couplet FPS...dans cette démonstration je vous montre la gestion multiplayer gérer en XML via AJAX.

la source est disponible ici

Lire la suite de Démonstration vidéo du 15 Juin 2013 de ShadowSpace

ShadowSpace un MMORPG en WebGL

Rédigé par BeHuman - - 4 commentaires

ShadowSpace est un projet perso que je développe quand j'ai un peu de temps libre devant moi. Le but de ce projet est de créer un jeu spacial du type MMORPG/FPS à la X3 TerranConflict disponible sur Steam

j'ai débuté ce projet avec un example disponible dans la librairie http://threejs.org/ , ensuite j'ai ajouté quelques éléments pour comprendre le mechanisme de la librairie et pour finir ma base, j'ai dev une librairie ajax en javascript , une librairie xml en php et créé un système de session multijoueur avec le tout.

Pour commencer je vous balance quelques captures d'écran:

 

Lire la suite de ShadowSpace un MMORPG en WebGL