begin process at 2010 02 10 11:25:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > FONDU ENTRE 2 BITMAP(TUTO SCANLINE)

FONDU ENTRE 2 BITMAP(TUTO SCANLINE)


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Niveau :Débutant Date de création :11/12/2002 Date de mise à jour :11/12/2002 22:47:25 Vu / téléchargé :3 333 / 311

Auteur : balgrim

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

 Description

Bon voila g "tenter" d'expliquer la fonction scanline paske g bcp de gens qui mon demander comment j'ai fait pour mon moteur 3DIso (voir www.dragonsoul.fr.st)
Bon g aussi tenter d'expliquer par la meme occase les pointeurs, mais c pas gagné, on se fous pas de moi...


 Conclusion

L'image 1 doit etre plus grand ou egale a l'image 2, sinon on peut facilement faire que sa marche a tout les coups avec 2 block if...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Tutoscanline
    • Project2.cfgTélécharger ce fichier [Réservé aux membres club]Voir ce fichier386 octets
    • Project2.dofTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 402 octets
    • Project2.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier188 octets
    • Project2.resTélécharger ce fichier [Réservé aux membres club]876 octets
    • Unit1.~ddpTélécharger ce fichier [Réservé aux membres club]51 octets
    • Unit1.~dfmTélécharger ce fichier [Réservé aux membres club]281 696 octets
    • Unit1.~pasTélécharger ce fichier [Réservé aux membres club]4 815 octets
    • Unit1.dcuTélécharger ce fichier [Réservé aux membres club]4 840 octets
    • Unit1.ddpTélécharger ce fichier [Réservé aux membres club]51 octets
    • Unit1.dfmTélécharger ce fichier [Réservé aux membres club]281 696 octets
    • Unit1.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 815 octets

Télécharger le zip


 Sources du même auteur

CALCULER UNE OPERATION PRESENTE DANS UNE STRING (GESTION DES...
Source avec Zip MOTEUR 2D (VERSION FINALISÉE)
DROLE DE TRUC (JL'AI PAS FAIT EXPRÉS!!!)
RANGEMENT D'UN TABLEAU DYNAMIQUE
Source avec Zip MOTEUR 2D (EN GROS)

 Sources de la même categorie

Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA par Bacterius
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE AUX DIMENSIONS D'UN QUADRANGLE QUELCONQUE... par FFCAST
Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON) par barbichette
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette

Commentaires et avis

Commentaire de balgrim le 15/12/2002 00:18:10

version optimizé (sans virgule flottante...):

function semitrans(Bmp1,Bmp2:TBitmap;nivo:byte):TBitmap;
var
ATB,ATB2,ATB3:pRGBTripleArray;I,J:integer;
Lvl,invLvl:integer;
begin
//on creer les classes...
result:=TBitmap.Create;
bmp1.PixelFormat:=pf24bit; //format 3byte (rgb). cela permet de synchroniser avec le pTATripleByte;
bmp2.PixelFormat:=pf24bit;
result.PixelFormat:=pf24bit;

result.Height:=bmp1.Height;
result.width:=bmp1.width;

//le niveau sur une echelle de 0 a 1:
lvl := nivo ;
invLvl:= 255-lvl;//sont inverse sur la meme echelle tels que lvl+invlvl=1;


for I:=0 to bmp1.Height-1 do begin
//on fait pointer les tableau de TripleBytes sur la ligne I
ATB:=bmp1.ScanLine[I];
ATB2:=bmp2.ScanLine[I];
ATB3:=result.ScanLine[I];
  for J:=0 to bmp1.Width-1 do begin
  (*
  Pour faire la semitransparenc il suffit d'appliquer les regle de
  proportionnalité tels que c = ka + (1-k)b  dans un intervalle pour k[0;1].

  ainsi 0<=k<=1 et donc si k = 0 alors c=b et si k = 1 alors c=a.
  On fait sa pour les 3 couleurs:
  *)
  ATB3[J].rgbtRed:=byte((invlvl*(ATB[J].rgbtRed-ATB2[J].rgbtRed))shr 8 +ATB2[J].rgbtRed);
  ATB3[J].rgbtGreen:=byte((invlvl*(ATB[J].rgbtGreen-ATB2[J].rgbtGreen))shr 8 +ATB2[J].rgbtGreen);
  ATB3[J].rgbtBlue:=byte((invlvl*(ATB[J].rgbtBlue-ATB2[J].rgbtBlue))shr 8 +ATB2[J].rgbtBlue);
  end;
end;

 Ajouter un commentaire




Nos sponsors


Sondage...

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 : 0,406 sec (4)

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