begin process at 2010 02 10 12:09:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CREEZ DE LA 3D SUR VOS IMAGES AVEC 1 LIGNE DE CODE

CREEZ DE LA 3D SUR VOS IMAGES AVEC 1 LIGNE DE CODE


 Information sur la source

Note :
8,71 / 10 - par 7 personnes
8,71 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :3d, image3d, image Niveau :Initié Date de création :22/05/2004 Vu / téléchargé :6 757 / 422

Auteur : pgpp

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Avec l'include 'Image3D.php' il vous suffit d'écrire :
Image3D($im,$r,$v,$b,$dir,$h);

Pour la signification des paramètres, voyez la source :

Source

  • <?
  • /*********************************************/
  • /* Nom : Image3D */
  • /* Auteur : pgpp05@hotmail.com */
  • /* Créé : 22/05/2004 */
  • /* Modifié : 22/05/2004 */
  • /*********************************************/
  • /* Utilité : Crée un effet 3D sur une image */
  • /*********************************************/
  • /* Arguments : ($im,$dr,$dg,$db,$dir,$h) */
  • /* $im : Pointeur sur l'image */
  • /* $dr,$dg,$db : Composantes couleurs */
  • /* r,v,b à décaler sur l'effet 3D */
  • /* $dir : direction de la 3D, combinaison */
  • /* booléenne des constantes sivantes: */
  • /* BAS|HAUT|DROITE|GAUCHE|X2|Y2 */
  • /* X2,Y2 doublent l'effet sur X ou Y */
  • /* $h : Hauteur de l'effet 3D */
  • /*********************************************/
  • define(BAS,1);
  • define(HAUT,2);
  • define(DROITE,4);
  • define(GAUCHE,8);
  • define(Y2,16);
  • define(X2,32);
  • function Image3D(&$im,$dr,$dg,$db,$dir,$h)
  • {
  • global $dx,$dy;$dx=$dy=0;
  • $sx=imageSX($im);$sy=imageSY($im);
  • if(($dir&BAS)==BAS) $dy-=1;
  • if(($dir&HAUT)==HAUT) $dy+=1;
  • if(($dir&DROITE)==DROITE) $dx-=1;
  • if(($dir&GAUCHE)==GAUCHE) $dx+=1;
  • if(($dir&Y2)==Y2) $dy*=2;
  • if(($dir&X2)==X2) $dx*=2;
  • if($dy<0)
  • for($x=0;$x<=$sx;$x++)
  • scan3D($im,$x,$sy,$h,$dr,$dg,$db);
  • if($dy>0)
  • for($x=0;$x<=$sx;$x++)
  • scan3D($im,$x,0,$h,$dr,$dg,$db);
  • if($dx<0)
  • for($y=1;$y<$sy;$y++)
  • scan3D($im,$sx,$y,$h,$dr,$dg,$db);
  • if($dx>0)
  • for($y=1;$y<$sy;$y++)
  • scan3D($im,0,$y,$h,$dr,$dg,$db);
  • }
  • function scan3D(&$im,$x,$y,$h,$dr,$dg,$db)
  • {
  • global $dx,$dy;
  • $cx=0;$cy=0;
  • if($dx>0)$cx=1;if($dx<0)$cx=-1;if($dy>0)$cy=1;if($dy<0)$cy=-1;
  • $sx=imageSX($im);$sy=imageSY($im);
  • while($x>=0 && $y>=0 && $x<=$sx && $y<=$sy)
  • {
  • $x+=$dx;$y+=$dy;
  • $bx=$by=false;
  • while($x>=0 && $y>=0 && $x<=$sx && $y<=$sy)
  • {
  • if(($c=imageColorAt($im,$x,$y))!=0) break;
  • else if($bx===false && $by===false){$bx=$x;$by=$y;}
  • $x+=$dx;$y+=$dy;
  • }
  • if($x<0 || $y<0 || $x>$sx || $y>$sy) return(1);
  • if($bx===false || $by===false) continue;
  • if(abs(($bx-$x)/($dx?$dx:1))>=$h) $bx=$x-$dx*$h;
  • if(abs(($by-$y)/($dy?$dy:1))>=$h) $by=$y-$dy*$h;
  • $c=imageColorsForIndex($im,$c);
  • $r=$c['red']+$dr;$g=$c['green']+$dg;$b=$c['blue']+$db;
  • 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;
  • if(($color=ImageColorExact($im,$r,$g,$b))==-1) $color=ImageColorAllocate($im,$r,$g,$b);
  • ImageLine($im,$bx,$by,$x-$cx,$y-$cy,$color);
  • }
  • return(0);
  • }
  • $im=ImageCreate(300,170);
  • ImageColorAllocate($im,255,255,255);
  • ImageColorAllocate($im,128,80,128);
  • ImageColorAllocate($im,30,200,30);
  • ImageColorAllocate($im,150,0,0);
  • ImageColorAllocate($im,0,60,150);
  • ImageColorAllocate($im,150,150,0);
  • ImageFilledPolygon($im,array(50,50,100,80,150,75,200,50,100,35,150,25,80,15),7,3);
  • //ImageFilledEllipse($im,250,100,75,50,2);
  • ImageFilledRectangle($im,240,20,255,150,2);
  • ImageFilledRectangle($im,260,50,275,150,4);
  • ImageFilledRectangle($im,280,80,295,150,5);
  • ImageString($im,5,30,115,"function Image3D()",1);
  • ImageString($im,5,30,135,"pgpp05@hotmail.com",1);
  • Image3D($im,60,60,60,HAUT|GAUCHE,6);
  • ImagePNG($im);
  • ?>
<?
/*********************************************/
/* Nom     : Image3D                         */
/* Auteur  : pgpp05@hotmail.com              */
/* Créé    : 22/05/2004                      */
/* Modifié : 22/05/2004                      */
/*********************************************/
/* Utilité : Crée un effet 3D sur une image  */
/*********************************************/
/* Arguments : ($im,$dr,$dg,$db,$dir,$h)     */
/*   $im : Pointeur sur l'image              */
/*   $dr,$dg,$db : Composantes couleurs      */
/*       r,v,b à décaler sur l'effet 3D      */
/*   $dir : direction de la 3D, combinaison  */
/*       booléenne des constantes sivantes:  */
/*       BAS|HAUT|DROITE|GAUCHE|X2|Y2        */
/*       X2,Y2 doublent l'effet sur X ou Y   */
/*   $h : Hauteur de l'effet 3D              */
/*********************************************/

define(BAS,1);
define(HAUT,2);
define(DROITE,4);
define(GAUCHE,8);
define(Y2,16);
define(X2,32);

function Image3D(&$im,$dr,$dg,$db,$dir,$h)
{
  global $dx,$dy;$dx=$dy=0;
  $sx=imageSX($im);$sy=imageSY($im);
  if(($dir&BAS)==BAS) $dy-=1;
  if(($dir&HAUT)==HAUT) $dy+=1;
  if(($dir&DROITE)==DROITE) $dx-=1;
  if(($dir&GAUCHE)==GAUCHE) $dx+=1;
  if(($dir&Y2)==Y2) $dy*=2;
  if(($dir&X2)==X2) $dx*=2;

  if($dy<0)
    for($x=0;$x<=$sx;$x++)
      scan3D($im,$x,$sy,$h,$dr,$dg,$db);
  if($dy>0)
    for($x=0;$x<=$sx;$x++)
      scan3D($im,$x,0,$h,$dr,$dg,$db);
  if($dx<0)
    for($y=1;$y<$sy;$y++)
      scan3D($im,$sx,$y,$h,$dr,$dg,$db);
  if($dx>0)
    for($y=1;$y<$sy;$y++)
      scan3D($im,0,$y,$h,$dr,$dg,$db);
}

function scan3D(&$im,$x,$y,$h,$dr,$dg,$db)
{
  global $dx,$dy;
  $cx=0;$cy=0;
  if($dx>0)$cx=1;if($dx<0)$cx=-1;if($dy>0)$cy=1;if($dy<0)$cy=-1;
  $sx=imageSX($im);$sy=imageSY($im);
  while($x>=0 && $y>=0 && $x<=$sx && $y<=$sy)
  {
    $x+=$dx;$y+=$dy;
    $bx=$by=false;
    while($x>=0 && $y>=0 && $x<=$sx && $y<=$sy)
    {
      if(($c=imageColorAt($im,$x,$y))!=0) break;
      else if($bx===false && $by===false){$bx=$x;$by=$y;}
      $x+=$dx;$y+=$dy;
    }
    if($x<0 || $y<0 || $x>$sx || $y>$sy) return(1);
    if($bx===false || $by===false) continue;
    if(abs(($bx-$x)/($dx?$dx:1))>=$h) $bx=$x-$dx*$h;
    if(abs(($by-$y)/($dy?$dy:1))>=$h) $by=$y-$dy*$h;
    $c=imageColorsForIndex($im,$c);
    $r=$c['red']+$dr;$g=$c['green']+$dg;$b=$c['blue']+$db;
    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;
    if(($color=ImageColorExact($im,$r,$g,$b))==-1) $color=ImageColorAllocate($im,$r,$g,$b);
    ImageLine($im,$bx,$by,$x-$cx,$y-$cy,$color);
  }
  return(0);
}


$im=ImageCreate(300,170);
ImageColorAllocate($im,255,255,255);
ImageColorAllocate($im,128,80,128);
ImageColorAllocate($im,30,200,30);
ImageColorAllocate($im,150,0,0);
ImageColorAllocate($im,0,60,150);
ImageColorAllocate($im,150,150,0);
ImageFilledPolygon($im,array(50,50,100,80,150,75,200,50,100,35,150,25,80,15),7,3);
//ImageFilledEllipse($im,250,100,75,50,2);
ImageFilledRectangle($im,240,20,255,150,2);
ImageFilledRectangle($im,260,50,275,150,4);
ImageFilledRectangle($im,280,80,295,150,5);
ImageString($im,5,30,115,"function Image3D()",1);
ImageString($im,5,30,135,"pgpp05@hotmail.com",1);
Image3D($im,60,60,60,HAUT|GAUCHE,6);
ImagePNG($im);
?>

 Conclusion

Les dernières lignes sont un exemple (cf la capture d'écran).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip UNE BASE DE RECETTES DE CUISINE (AVEC MOTEUR DE RECHERCHE)
Source avec Zip CHAT BETA1 AVEC SALONS (PUBLICS,PRIVÉS,PROTÉGÉS) ET PROFIL U...
Source avec Zip Source avec une capture UN GRAPHIQUE CAMEMBERT EN 3D
Source avec Zip PROTECTION DE VOS PAGES PAR LOGIN ET MOT DE PASSE : SYSTEME ...
Source avec Zip ÉDITEUR PHP AVEC COLORATION SYNTAXIQUE EN TEMPS REEL (PROTOT...

 Sources de la même categorie

Source avec Zip RECHERCHE DE MOTIF DANS UNE IMAGE par ParseError
BARRES PARAMÉTRABLES EN DÉGRADÉ DE COULEUR ET AVEC TEXTE DA... par hornetbzz
Source avec Zip Source avec une capture GALERIE PHOTO SIMPLE À GÉRER par francky6691
Source avec Zip Source avec une capture DIAPORAMA AVEC AJOUT ET REDIMENSIONEMENT DE PHOTOS, CRÉATION... par giloum
Source avec Zip Source avec une capture AFFICHAGE INFOBULLE SUR GRAPHIQUE ARTICHOW par nirronico

 Sources en rapport avec celle ci

Source avec Zip RECHERCHE DE MOTIF DANS UNE IMAGE par ParseError
REMPLACER DES LETTRES EN IMAGES par Damtux972
Source avec Zip FUNCTION LINK par astro53
Source avec Zip PRELOAD IMAGES AVEC IMAGE LOADER ET MISE EN CACHE JAVASCRIPT par mitchlmx
Source avec Zip Source avec une capture CRÉER UN TERRAIN EN 3D ISO A PARTIR D'UNE HEIGHT MAP par djine

Commentaires et avis

Commentaire de BlackScorpion le 23/05/2004 01:55:44

sa me rappelle les vieux jeu de 80 ^^ c po super bo mais j'aime bien :D

Commentaire de willinfeo le 24/05/2004 10:27:44

Salut a tous,
j'ai rien qui s'affiche. Comment on se sert de ton script ?
Merci

Commentaire de Mandrake83 le 24/05/2004 22:14:01

C'est rare les sources de qualité ici ^^

Commentaire de iubito le 25/05/2004 06:18:24

j'ai pas encore essayé.
Prochaine étape : la 3D en dégradé ? un fondu de couleur 1 à couleur 2, par exemple de gris à blanc, pour avoir un effet comme ici : http://www.myriad-online.com/resources/dogstory/index.html

hein? quoi? je pousse un peu loin ? :-p ok je sors....--------&gt;

^^

Commentaire de Mandrake83 le 25/05/2004 10:09:57

^^

Commentaire de atrickofthetail le 10/06/2004 10:26:35

Ca en jette ! Très bien vraiment, j'ai mis neuf et, avec ta permission, je vais m'en servir pour améliorer mon script d'affichage de l'espace disque ... ^^

byebye,

atrickofthetail

Commentaire de pgpp le 10/06/2004 12:49:15

No problem ! y'a pas de copyright lol
Merci pour vos commentaires !

bye,
pgpp

Commentaire de Marshall_Mathers le 30/11/2004 20:45:59

Ca c'est vraiment ce qu'on appelle ==> 1 Ligne !! ;)

Sinon GOOD !!!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

:::::: URGENT !!! ENVOI D'IMAGE PAR FTP !!!! ERREUR :::::: [ par kkz_mil3k ] j'essaie d'nevoyer un fichier image gif ou jpg sur un ftp via ce formulaire php :------------------------------------------- //**connecte au ftp sc Comment insérer un champs image ds ma table ?? [ par inceV ] Salut à tous et bonne année 2002 !!!Bon, je n'arrive pas à créer un champs 'image' ds ma table et je ne comprends pas tp commen ça marche, pourriez-vo Faire unr image sur le serveur en PHP [ par fabiin ] Salut !En ASP, il y a un composant ki permet de créer une image sur le serveur,...on peu avec 2-3 ligne de codes, faire un dégradé, mettre du texte, e Insérer une image dans une autre [ par cduf ] Je sais créer une image (compteur) avec des commandes php GD, mais comment l'insérer dans une autre (bannière). Merci de m'aider.Email : cdufetelle@wa envoyer une image dans le $message de mail() [ par linov ] Bonjour,Comment faire pour envoyer une image dans le $message envoyé par la fonction mail() ?Syntaxe ? Paramètres ? Est-ce possible ?Merci de votre ai include image [ par erich10 ] comment faire un include d'une image ?et comment faire en plus un lien sur cette image?merci générer des miniatures avec gd 1.6 [ par vegetaline ] muhaha alors là c'est rigolo, un super défi pour les programmeurs fous!ok j'ai le code pour générer des miniatures grâce au php, mais ça marche qu'ave MySQL et images [ par Marneus Calgar ] SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un MySQL et images [ par Marneus Calgar ] SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un Ne pas afficher la barre de Menu Image [ par microdav ] Bonjour à vous Internaute,je vous soumets une petite question...Je recherche Code permettant de ne pas faire afficher la barre de menu "Image" sur une


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales