Commit 488c3da9 authored by git's avatar git

php

parent 695b1500
<?php
// Créé une image en négatif
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['canal']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$canal = $_GET['canal'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=0; $i<$largeur; $i++)
{
// On parcourt les lignes et les colonnes et on va modifier chaque pixel.
// Récupération des proportions de rouge, vert et bleu
$rgb = imagecolorat($im, $i, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On redessine le point
if($canal==0) imagesetpixel($im, $i, $j, imagecolorallocate($im, $red, 0,0));
elseif($canal==1) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, $green,0));
elseif($canal==2) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, 0,$blue));
elseif($canal==3) imagesetpixel($im, $i, $j, imagecolorallocate($im, $red, $green,0));
elseif($canal==4) imagesetpixel($im, $i, $j, imagecolorallocate($im, $red, 0,$blue));
elseif($canal==5) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, $green,$blue));
}
}
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
}
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['s']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$s = $_GET['s'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Il faut commencer par créer une nouvelle image de façon à ne pas modifier les pixels au fur et à mesure !
$im2 = imagecreatetruecolor($largeur, $hauteur);
// Creation de la la matrice de sobel
$matriceV[0][0]=-1;
$matriceV[1][0]=-2;
$matriceV[2][0]=-1;
$matriceV[0][1]=0;
$matriceV[1][1]=0;
$matriceV[2][1]=0;
$matriceV[0][2]=1;
$matriceV[1][2]=2;
$matriceV[2][2]=1;
$matriceH[0][0]=-1;
$matriceH[1][0]=0;
$matriceH[2][0]=1;
$matriceH[0][1]=-2;
$matriceH[1][1]=0;
$matriceH[2][1]=2;
$matriceH[0][2]=-1;
$matriceH[1][2]=0;
$matriceH[2][2]=1;
$t=1;
// Traitement
for($j=$t; $j<$hauteur-$t; $j++)
{
for($i=$t; $i<$largeur-$t; $i++)
{
$r1 = 0;
$r2 = 0;
for($l=-$t;$l<=$t;$l++)
{
for($k=-$t; $k<=$t;$k++)
{
// Récupération de la couleur du pixel dans le tableau en $i+$k ; $j+$l
$rgb = imagecolorat($im, $i+$k, $j+$l);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
$gris = = 0.299*$red+0.587*$green+0.114*$blue;
// On les multiplie par le bon coefficient de la matrice du filtre et on ajoute au "reste" :
$r1 = $r1+gris * $matriceV[$k+$t][$l+$t];
$r2 = $r2+$gris * $matriceH[$k+$t][$l+$t];
}
}
if ($r1>255) $r1=255;
if($r1<0) $r1=0;
if ($r2>255) $r2=255;
if($r2<0) $r2=0;
// On dessine le point
imagesetpixel($im2, $i, $j, imagecolorallocate($im2, $r1, $r2, 255));
}
}
// Affichage de l'image
imagejpeg($im2, NULL, 90);
// Libération de mémoire
imagedestroy($im2);
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
}
\ No newline at end of file
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['s']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$s = $_GET['s'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Il faut commencer par créer une nouvelle image de façon à ne pas modifier les pixels au fur et à mesure !
$im2 = imagecreatetruecolor($largeur, $hauteur);
// Taille de la matrice
$t = ceil(3*$s);
// Creation de la matrice du moyenneur
for($j=-$t; $j<=$t;$j++)
{
for($i=-$t; $i<=$t; $i++)
{
$matrice[$i+$t][$j+$t]=exp(-($i*$i+$j*$j)/(2*$s*$s))/(2*pi()*$s*$s);
}
}
// Traitement
for($j=$t; $j<$hauteur-$t; $j++)
{
for($i=$t; $i<$largeur-$t; $i++)
{
$r = 0;
$g = 0;
$b = 0;
for($l=-$t;$l<=$t;$l++)
{
for($k=-$t; $k<=$t;$k++)
{
// Récupération de la couleur du pixel dans le tableau en $i+$k ; $j+$l
$rgb = imagecolorat($im, $i+$k, $j+$l);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On les multiplie par le bon coefficient de la matrice du filtre et on ajoute au "reste" :
$r = $r+$red * $matrice[$k+$t][$l+$t];
$g = $g+$green * $matrice[$k+$t][$l+$t];
$b = $b+$blue * $matrice[$k+$t][$l+$t];
}
}
if ($r>255) $r=255;
if($r<0) $r=0;
if ($g>255) $g=255;
if($g<0) $g=0;
if ($b>255) $b=255;
if($b<0) $b=0;
// On dessine le point
imagesetpixel($im2, $i, $j, imagecolorallocate($im2, $r, $g, $b));
}
}
// Affichage de l'image
imagejpeg($im2, NULL, 90);
// Libération de mémoire
imagedestroy($im2);
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
}
\ No newline at end of file
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['s']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$s = $_GET['s'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Il faut commencer par créer une nouvelle image de façon à ne pas modifier les pixels au fur et à mesure !
$im2 = imagecreatetruecolor($largeur, $hauteur);
// Taille de la matrice
$t = ceil(3*$s);
// Creation de la matrice du moyenneur
for($i=-$t; $i<=$t; $i++)
{
$matrice[$i+$t]=exp(-($i*$i)/(2*$s*$s))/(sqrt(2*pi())*$s);
}
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=$t; $i<$largeur-$t; $i++)
{
$r = 0;
$g = 0;
$b = 0;
for($k=-$t; $k<=$t;$k++)
{
// Récupération de la couleur du pixel dans le tableau en $i+$k ; $j+$l
$rgb = imagecolorat($im, $i+$k, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On les multiplie par le bon coefficient de la matrice du filtre et on ajoute au "reste" :
$r = $r+$red * $matrice[$k+$t];
$g = $g+$green * $matrice[$k+$t];
$b = $b+$blue * $matrice[$k+$t];
}
if ($r>255) $r=255;
if($r<0) $r=0;
if ($g>255) $g=255;
if($g<0) $g=0;
if ($b>255) $b=255;
if($b<0) $b=0;
// On dessine le point
imagesetpixel($im2, $i, $j, imagecolorallocate($im2, $r, $g, $b));
}
}
// Affichage de l'image
imagejpeg($im2, NULL, 90);
// Libération de mémoire
imagedestroy($im2);
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
}
\ No newline at end of file
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
include('rvbtls.php');
// On récupère les coefficients !
if(isset($_GET['tmin']) and isset($_GET['tmax']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$tmin = $_GET['tmin'];
$tmax = $_GET['tmax'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=0; $i<$largeur; $i++)
{
// On parcourt les lignes et les colonnes et on va modifier chaque pixel.
// Récupération des proportions de rouge, vert et bleu
$rgb = imagecolorat($im, $i, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
$TLS=RVBtoTLS($red,$green,$blue);
$t=$TLS[0];
if($t>$tmax or $t<$tmin)
{
// On applique les coefficients spécifiés !
$gris = 0.299*$red+0.587*$green+0.114*$blue;
// On redessine le point
imagesetpixel($im, $i, $j, imagecolorallocate($im, $gris, $gris, $gris));
}
if($t<0) imagesetpixel($im, $i, $j, imagecolorallocate($im, 0, 0, 0));
}
}
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
}
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['r']) and isset($_GET['v']) and isset($_GET['b']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$r = $_GET['r'];
$v = $_GET['v'];
$b = $_GET['b'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=0; $i<$largeur; $i++)
{
// On parcourt les lignes et les colonnes et on va modifier chaque pixel.
// Récupération des proportions de rouge, vert et bleu
$rgb = imagecolorat($im, $i, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On applique les coefficients spécifiés !
$gris = $r*$red+$v*$green+$b*$blue;
// On redessine le point
imagesetpixel($im, $i, $j, imagecolorallocate($im, $gris, $gris, $gris));
}
}
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
}
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['t']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$t = $_GET['t'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Il faut commencer par créer une nouvelle image de façon à ne pas modifier les pixels au fur et à mesure !
$im2 = imagecreatetruecolor($largeur, $hauteur);
// Creation de la matrice du moyenneur
for($j=0; $j<2*$t+1;$j++)
{
for($i=0; $i<2*$t+1; $i++)
{
$matrice[$i][$j]=1/((2*$t+1)*(2*$t+1));
}
}
// Traitement
for($j=$t; $j<$hauteur-$t; $j++)
{
for($i=$t; $i<$largeur-$t; $i++)
{
$r = 0;
$g = 0;
$b = 0;
for($l=-$t;$l<=$t;$l++)
{
for($k=-$t; $k<=$t;$k++)
{
// Récupération de la couleur du pixel dans le tableau en $i+$k ; $j+$l
$rgb = imagecolorat($im, $i+$k, $j+$l);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On les multiplie par le bon coefficient de la matrice du filtre et on ajoute au "reste" :
$r = $r+$red * $matrice[$k+$t][$l+$t];
$g = $g+$green * $matrice[$k+$t][$l+$t];
$b = $b+$blue * $matrice[$k+$t][$l+$t];
}
}
// On dessine le point
imagesetpixel($im2, $i, $j, imagecolorallocate($im2, $r, $g, $b));
}
}
// Affichage de l'image
imagejpeg($im2, NULL, 90);
// Libération de mémoire
imagedestroy($im2);
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
}
\ No newline at end of file
<?php
// Créé une image de départ en niveaux de gris en appliquant certains coefficients
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['t']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$t = $_GET['t'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Il faut commencer par créer une nouvelle image de façon à ne pas modifier les pixels au fur et à mesure !
$im2 = imagecreatetruecolor($largeur, $hauteur);
// Creation de la matrice du moyenneur
for($i=0; $i<2*$t+1; $i++)
{
$matrice[$i]=1/(2*$t+1);
}
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=$t; $i<$largeur-$t; $i++)
{
$r = 0;
$g = 0;
$b = 0;
for($k=-$t; $k<=$t;$k++)
{
// Récupération de la couleur du pixel dans le tableau en $i+$k ; $j+$l
$rgb = imagecolorat($im, $i+$k, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On les multiplie par le bon coefficient de la matrice du filtre et on ajoute au "reste" :
$r = $r+$red * $matrice[$k+$t];
$g = $g+$green * $matrice[$k+$t];
$b = $b+$blue * $matrice[$k+$t];
}
// On dessine le point
imagesetpixel($im2, $i, $j, imagecolorallocate($im2, $r, $g, $b));
}
}
// Affichage de l'image
imagejpeg($im2, NULL, 90);
// Libération de mémoire
imagedestroy($im2);
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
}
\ No newline at end of file
<?php
// Créé une image en négatif
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=0; $i<$largeur; $i++)
{
// On parcourt les lignes et les colonnes et on va modifier chaque pixel.
// Récupération des proportions de rouge, vert et bleu
$rgb = imagecolorat($im, $i, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On redessine le point
imagesetpixel($im, $i, $j, imagecolorallocate($im, 255-$red, 255-$green, 255-$blue));
}
}
}
else
{
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'Error', $text_color);
}
// Affichage de l'image
imagejpeg($im, NULL, 90);
// Libération de mémoire
imagedestroy($im);
<?php
function RVBtoTLS( $R, $V, $B )
{
// En entrée, des proportions de rouge, vert bleu
// En sortie un tableau de taille 3 avec en 0 : T, en 1 : L et en 3 : S
// Max des 3 proportions
if( $R>$V and $R>$B ) $M=$R;
elseif( $B>$R and $B>$V ) $M=$B;
else $M=$V;
// min
if( $R<$V and $R<$B ) $m=$R;
elseif( $B<$R and $B<$V ) $m=$B;
else $m=$V;
$C=$M-$m;
if($C==0) $T=361; // C'est du gris, pas considéré comme une couleur, pas de teinte...
elseif($M==$R) $T=60*($V-$B)/$C;
elseif($M==$V) $T=60*(2+($B-$R)/$C);
else $T=60*(4+($R-$V)/$C);
$L=$M;
if($C==0) $S=0;
else $S=255*$C/$L;
if($T<0) $T=360-$T;
if($T>360 and $C!=0) $T=$T-360;
$TLS[0]=$T;
$TLS[1]=$L;
$TLS[2]=$S;
return $TLS;
}
\ No newline at end of file
<?php
// Créé une image en sépia
header('Content-Type: image/jpeg');
// On récupère les coefficients !
if(isset($_GET['d']) and isset($_GET['file']) )
{
// On a des coefficients et un fichier !
$d = $_GET['d'];
$filename = $_GET['file'];
// Ouverture de l'image
$im = imagecreatefromjpeg($filename);
$largeur = imagesx($im);
$hauteur = imagesy($im);
// Traitement
for($j=0; $j<$hauteur; $j++)
{
for($i=0; $i<$largeur; $i++)
{
// On parcourt les lignes et les colonnes et on va modifier chaque pixel.
// Récupération des proportions de rouge, vert et bleu
$rgb = imagecolorat($im, $i, $j);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
// On applique les coefficients spécifiés !
$gris = 0.299*$red+0.587*$green+0.114*$blue;
$r = $gris+2*$d;
$v = $gris+$d;
$b = $gris-$d;
if($r>255) $r=255;
if($v>255) $v=255;
if($b<0) $b=0;
// On redessine le point
imagesetpixel($im, $i, $j, imagecolorallocate($im, $r, $v, $b));
}
}
}