Loading...

Used Colors in Palette Image

Support for GdPicture Light Imaging Toolkit and GdPicture Pro Imaging ActiveX/SDK.

Used Colors in Palette Image

Postby COGBR » Tue Feb 02, 2010 7:15 pm

I am trying to get how many colors are effectively used in a design. I used the command " CountColor" to identify the colors which really have more than 1 pixels. However, my designs are very big (7600 pixels x 7600 pixels) and it takes a veryyyyyyyy long time to give the result. Is there any command that could give this answer almost immediatly ? I am actaully using the "GDPICTURE TOOLKIT PRO EDITION" .
Thanks ffor your help
Regards
Chris
COGBR
 
Posts: 2
Joined: Tue Feb 02, 2010 6:41 pm

Re: Used Colors in Palette Image

Postby Loïc » Thu Feb 04, 2010 5:44 pm

Hi,

I am not sure to understand you fully. Do you have a code snippet which illustrate what you are doing ?

Kind regards,

Loïc
Loïc Carrère, support team.
www.orpalis.com
User avatar
Loïc
Site Admin
 
Posts: 4437
Joined: Tue Oct 17, 2006 10:48 pm
Location: France

Re: Used Colors in Palette Image

Postby COGBR » Fri Feb 05, 2010 7:12 pm

Cher Loïc,

Pour découvrir le nombre exact de couleurs qui existent dans un dessin, une fois le dessin chargé dans un controle OCX de Windev, j´éxecute la procedure suivante:

1 - je redimensionne le dessin (grand format = 6400 x 12800 pixels) en utilisant la commande :
"ocxGdPicImgOrig>>ResizeImage(750, 1500, 5) - mode 5 = InterpolationModeNearestNeighbor"
2 - Je découvre le nombre total de couleurs de la palette complète du dessin réduit en utilisant la commande :
"ocxGdPicImgOrig>>ColorPaletteGetColorsCount"
3 - Pour découvrir quelles sont les couleurs qui existent vraiment (> 0 pixels), dans le dessin j´utilise la sequence de
commandes :
3.1 - ocxGdPicImgOrig>>ColorPaletteGet // Charge la palette dans un vecteur
3.2 - ocxGdPicImgOrig>>ColorPaletteGetEntrie(i) // Identifie chaque couleur individuellement pour être traitée
3.3 - ocxGdPicImgOrig>>CountColor(argb) // Compte le numéro de pixels de la couleur traitée

Problèmes : 1 - Pour les petits dessins (800x1200 pixels) la fonction
"ocxGdPicImgOrig>>ResizeImage(750, 1500, 5) - mode 5 = InterpolationModeNearestNeighbor"
fonctionne correctement. C´est à dire le redimensionnement est fait correctement et aucune nouvelle couleur
intermédiare n´est crée - mode 5 =InterpolationModeNearestNeighbor
Pour le dessin de l´explication (grand format = 6400 x 12800 pixels) la commande redimensionne correctement
le dessin mais une grande quatité de couleurs intermédiares est crée et des pixels sont également crées pour
donner un effet "antialias" qui n´est pas souhaité et demandé dans la commande par le mode demandé =
" mode 5 =InterpolationModeNearestNeighbor ". Je dois maintenir le même nombre de couleurs du dessin originel

2 - Y a t´il une fonction qui me permette de savoir instantanément combien de couleurs existent (> 0 pixels)
dans une image ou dessin , sans avoir à compter tous les pixels de toutes le couleurs d´une palette ?

Cordialement

Giraud Christian
COGBR
 
Posts: 2
Joined: Tue Feb 02, 2010 6:41 pm


Return to GdPicture [Pro] ActiveX

Who is online

Users browsing this forum: No registered users and 1 guest