/***************************************************************/
Type ImageJpeg Implemente IImage Defaut TailleSegment 2 ConserverObjets
/* Objet : Definition d'une image Jpeg. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'IImage. */
/*-------------------------------------------------------------*/
Prive :
NomFichierImage : Nul Ou Caractere Virtuel Lecture Public;
Contexte : Nul Ou ContexteGraphique Virtuel Lecture Public;
FormatImage : FormatsImageSupportes Virtuel Lecture Public;
Resolution : Entier Virtuel Lecture Public;
Largeur : Reel Virtuel Lecture Public;
Hauteur : Reel Virtuel Lecture Public;
LargeurPixels : Entier Virtuel Lecture Public;
HauteurPixels : Entier Virtuel Lecture Public;
NbBitsParPixel : Entier Virtuel Lecture Public;
NbImagesPhysiques : Entier Virtuel Lecture Public;
Taille : Entier Virtuel Lecture Public;
Public :
Frequence : Entier Virtuel;
Entrelacer : Booleen Virtuel;
Commentaire : Nul Ou Caractere Virtuel;
NomArtiste : Nul Ou Caractere Virtuel;
Copyright : Nul Ou Caractere Virtuel;
NomApplication : Nul Ou Caractere Virtuel;
VersionApplication : Nul Ou Caractere Virtuel;
CouleurFond : Nul Ou Couleur Virtuel;
CouleurTransparente : Nul Ou Couleur Virtuel;
FinSequence : FinSequenceImage Virtuel;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Public :
SorteCompression : SorteCompressionJpeg Virtuel;
CouleurCompression : SorteCouleur Virtuel;
Echantillonnage : EchantillonnageJpeg Virtuel;
Precision : Entier Virtuel;
TauxPrecision : Entier Virtuel;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'IImage. */
/*-------------------------------------------------------------*/
Public :
Procedure Enregistrer();
Procedure Enregistrer(Flux : Nul Ou IFlux);
Procedure Enregistrer(NomFichier : Nul Ou Caractere);
Procedure AjouterImagePhysique();
Procedure SelectionnerImagePhysique(Numero : Entier);
Procedure SupprimerImagePhysique();
Fonction Optimiser(NulAbsorbant) RemplacerCouleur(AncienneCouleur : Nul Ou Couleur, NouvelleCouleur : Nul Ou Couleur, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction EquilibrerCouleursRGB(DeltaRouge : Entier, DeltaVert : Entier, DeltaBleu : Entier, BalanceDemandee : BalanceCouleurs,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction EquilibrerCouleursYCbCr(DeltaCb : Entier, DeltaCr : Entier, BalanceDemandee : BalanceCouleurs,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction EquilibrerCouleursCMJ(DeltaCyan : Entier, DeltaMagenta : Entier, DeltaJaune : Entier, BalanceDemandee : BalanceCouleurs,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction EquilibrerCouleursCMJN(DeltaCyan : Entier, DeltaMagenta : Entier, DeltaJaune : Entier, BalanceDemandee : BalanceCouleurs,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction EquilibrerCouleursTSL(DeltaTeinte : Entier, DeltaSaturation : Entier, BalanceDemandee : BalanceCouleurs,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction TronquerCouleursRGB(RougeMin : Entier, RougeMax : Entier, VertMin : Entier, VertMax : Entier, BleuMin : Entier, BleuMax : Entier,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction TronquerCouleursYCbCr(CbMin : Entier, CbMax : Entier, CrMin : Entier, CrMax : Entier,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction TronquerCouleursCMJ(CyanMin : Entier, CyanMax : Entier, MagentaMin : Entier, MagentaMax : Entier, JauneMin : Entier, JauneMax : Entier,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction TronquerCouleursCMJN(CyanMin : Entier, CyanMax : Entier, MagentaMin : Entier, MagentaMax : Entier, JauneMin : Entier, JauneMax : Entier,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction TronquerCouleursTSL(SaturationMin : Entier, SaturationMax : Entier, LuminositeMin : Entier, LuminositeMax : Entier,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction EquilibrerSaturationEtLuminosite(DeltaSaturation : Entier, DeltaLuminosite : Entier, BalanceDemandee : BalanceCouleurs,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction TronquerSaturationEtLuminosite(SaturationMin : Entier, SaturationMax : Entier, LuminositeMin : Entier, LuminositeMax : Entier,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction FiltrerCouleursRGB(FiltrerRouge : Booleen, FiltrerVert : Booleen, FiltrerBleu : Booleen, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction FiltrerCouleursYCbCr(FiltrerCb : Booleen, FiltrerCr : Booleen, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction FiltrerCouleursCMJ(FiltrerCyan : Booleen, FiltrerMagenta : Booleen, FiltrerJaune : Booleen, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction FiltrerCouleursCMJN(FiltrerCyan : Booleen, FiltrerMagenta : Booleen, FiltrerJaune : Booleen, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction FiltrerCouleursTSL(FiltrerTeinte : Booleen, FiltrerSaturation : Booleen, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction InverserCouleursRGB(InverserRouge : Booleen, InverserVert : Booleen, InverserBleu : Booleen, C : Booleen=Faux,
M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction InverserCouleursYCbCr(InverserCb : Booleen, InverserCr : Booleen, C : Booleen=Faux,
M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction InverserCouleursCMJ(InverserCyan : Booleen, InverserMagenta : Booleen, InverserJaune : Booleen, C : Booleen=Faux,
M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction InverserCouleursCMJN(InverserCyan : Booleen, InverserMagenta : Booleen, InverserJaune : Booleen, C : Booleen=Faux,
M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction InverserCouleursTSL(InverserTeinte : Booleen, InverserSaturation : Booleen, C : Booleen=Faux,
M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction InverserSaturationEtLuminosite(InverserSaturation : Booleen, InverserLuminosite : Booleen, C : Booleen=Faux,
R : Nul Ou Rectangle=Nul) Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) Effacer(C : Nul Ou Couleur, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction ChangerCouleurPaletteRGB(IndexCouleur : Entier, Rouge : Entier, Vert : Entier, Bleu : Entier, C : Booleen=Faux)
Retourner Nul Ou IImage;
Fonction ChangerCouleurPaletteYCbCr(IndexCouleur : Entier, Y : Entier, Cb : Entier, Cr : Entier, C : Booleen=Faux)
Retourner Nul Ou IImage;
Fonction ChangerCouleurPaletteCMJ(IndexCouleur : Entier, Cyan : Entier, Magenta : Entier, Jaune : Entier, C : Booleen=Faux)
Retourner Nul Ou IImage;
Fonction ChangerCouleurPaletteCMJN(IndexCouleur : Entier, Cyan : Entier, Magenta : Entier, Jaune : Entier, C : Booleen=Faux)
Retourner Nul Ou IImage;
Fonction ChangerCouleurPaletteTSL(IndexCouleur : Entier, Teinte : Entier, Saturation : Entier, Luminosite : Entier, C : Booleen=Faux)
Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) ChangerPalette(TableCouleurs : Nul Ou TableauDe Nul Ou Couleur, EffacerResiduPalette : Booleen, C : Booleen=Faux)
Retourner Nul Ou IImage;
Fonction ChangerSortePalette(NouvelleSorte : SortePalette) Retourner Nul Ou IImage;
Fonction AgrandirOuRetrecir(L : Entier, H : Entier, C : Booleen=Faux) Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) Retailler(L : Entier, H : Entier, P : Nul Ou Point, CouleurTrou : Nul Ou Couleur, C : Booleen=Faux) Retourner Nul Ou IImage;
Fonction ChangerResolution(NouvelleResolution : Entier, ConserverTailleImage : Booleen) Retourner Nul Ou IImage;
Procedure Optimiser(NulAbsorbant) Copier(MSource : Nul Ou MasqueDessin, Destination : Nul Ou IImage, Mode : ModeCopie=CopieSansTransparent, PourcentMixage : Entier=0);
Procedure Optimiser(NulAbsorbant) Copier(MSource : Nul Ou MasqueDessin, Destination : Nul Ou ContexteGraphique);
Procedure Optimiser(NulAbsorbant) Coller(Destination : Nul Ou IImage, MDestination : Nul Ou MasqueDessin, Mode : ModeCopie=CopieSansTransparent, PourcentMixage : Entier=0);
Procedure Optimiser(NulAbsorbant) Coller(Destination : Nul Ou ContexteGraphique, MDestination : Nul Ou MasqueDessin);
Fonction RendreFloue(C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction RendreNette(C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction AppliquerSymetrieHorizontale(C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction AppliquerSymetrieVerticale(C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) AppliquerRotation(Centre : Nul Ou Point, Angle : Reel, CouleurTrou : Nul Ou Couleur, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) AppliquerTranslation(VecteurX : Entier, VecteurY : Entier, CouleurTrou : Nul Ou Couleur, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) AppliquerHomothetie(Centre : Nul Ou Point, CoefficientX : Reel, CoefficientY : Reel, CouleurTrou : Nul Ou Couleur,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) Projeter(TablePoints : Nul Ou TableauDe Nul Ou Point, CouleurTrou : Nul Ou Couleur, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul)
Retourner Nul Ou IImage;
Operateur Optimiser(Invariant) [](X : Nul Ou Entier, Y : Nul Ou Entier) Retourner Nul Ou Couleur;
Operateur [](X : Nul Ou Entier, Y : Nul Ou Entier, C : Nul Ou Couleur, MethodeAComposer : Nul Ou Fonction(C1 : Nul Ou Couleur, C2 : Nul Ou Couleur) Retourner Nul Ou Couleur);
Procedure Appliquer(Traitement : Nul Ou Procedure (X : Entier, Y : Entier, C : Nul Ou Couleur), M : Nul Ou MasqueDessin=Nul);
Procedure Appliquer(Traitement : Nul Ou Procedure (X : Entier, Y : Entier, C1 : Nul Ou Couleur, C2 : Nul Ou Couleur), I : Nul Ou IImage,
M : Nul Ou MasqueDessin=Nul);
Fonction Optimiser(NulAbsorbant) Appliquer(Traitement : Nul Ou Fonction (X : Entier, Y : Entier, C : Nul Ou Couleur) Retourner Nul Ou Couleur,
C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction Optimiser(NulAbsorbant) Appliquer(Traitement : Nul Ou Fonction (X : Entier, Y : Entier, C1 : Nul Ou Couleur, C2 : Nul Ou Couleur)
Retourner Nul Ou Couleur, I : Nul Ou IImage, C : Booleen=Faux, M : Nul Ou MasqueDessin=Nul) Retourner Nul Ou IImage;
Fonction VersImage(F : FormatsImageSupportes, C : Booleen=Faux) Retourner Nul Ou IImage;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur Optimiser(NulAbsorbant) (NomFichier : Nul Ou Caractere);
Constructeur Optimiser(NulAbsorbant) (Flux : Nul Ou IFlux);
Constructeur Optimiser(NulAbsorbant) (L : Nul Ou Entier, H : Nul Ou Entier, SP : SortePalette=PaletteCouleursVraies, R : Nul Ou Entier=72, SC : SorteCompressionJpeg=CompressionJpegDestructiveSequentielle);
Operateur Optimiser(Invariant, NulAbsorbant) ==(I : Nul Ou ImageJpeg) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(I : Nul Ou ImageJpeg) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type ImageJpeg modélise une image au format Joint Photographic Experts Group.
Le type ImageJpeg possède trois constructeurs explicites :
Principal
/*******/
Variable
/******/
I1 : Nul Ou ImageJpeg;
I2 : Nul Ou ImageJpeg;
Debut
...
I1.Contexte.SelectionnerPinceau(C1.PinceauNoir);
/* Selection du pinceau noir et continu. */
I1.Contexte.SelectionnerMotif(C1.MotifAucun);
/* Pas de selection de motif. */
I1.Contexte.DessinerRectangle(0, 0, 100, 50);
/* Dessine un rectangle évidé, bordé d'un trait noir et continu. */
...
I2=I1.AppliquerSymetrieHorizontale();
...
Si I1==I2 Alors
/* Egalité entre deux images. */
...
Fin Si
Si I1!=I2 Alors
/* Inégalité entre deux images. */
...
Fin Si
...
Fin Principal
- | - | - | - | - | - | - | - | - |