Traitement automatisé des pixels morts

Discussion de programmation pour éviter d'empiéter dans les autres forums

Modérateurs : Modérateurs, Développeurs

Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Bien entendu je ne traite que les pixels morts... Finalement j'ai fait la moyenne des pixels qui entourent le pixel mort (sans compter les éventuels pixels morts qui entoureraient le pixel mort en question)

Apparement ca donne de bon résultats avec tes images... (Test effectués hier soir)

En ce qui concerne la configuration, pour le moment je gére un répertoire contenant les images bmp monochromes (avec du blanc pour les pixels morts et du noir sinon). Une image par résolution.

Les images sont renommées de la forme :

<largeur>x<hauteur>.bmp

Dans ton cas ca donne une image qui s'appelle 1600x1200.bmp

Par contre si tu as peur de perdre en qualité tu peux sauvegarder les images en png car c'est vrai que l'image sauvegardée en jpeg est différente de l'originale pour info il y avait en général entre et 1 et 3 niveau de gris de différence mais je suis pas sur que cela soit visible à l'oeil nu!

L'image est choisie en fonction de la résolution d'origine de l'image et il vérifie que la résolution concorde avec le nom

Je me demande si pouvoir traiter toutes les images ouvertes dans photofiltre par exemple en faisant une liste à cocher des fichiers ouverts ne serait pas suffisante pour une première version car ca serait vite fait...
Alf92
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 25
Inscription : 02 avr. 2004 22:54

Message par Alf92 »

Bonsoir Benjamin,

tu dis :
> Je me demande si pouvoir traiter toutes les images ouvertes dans photofiltre par exemple en faisant une liste à cocher des fichiers ouverts ne serait pas suffisante pour une première version car ca serait vite fait...

Noublie pas que c'est vraiment du traitement par lot qu'il est necessaire de faire.
je décris les étape :
1/ je vide mon appareil sur mon PC.
J'obtiens 100 photos JPG sur mon disque dur, chaque photos présentant le même problème au même endroit au niveau des pixels morts.
2/ en "trois clics" je dois obtenir un sauvegarde de mes 100 photos corrigées dans un format non destructif (TIFF, BMP, ...)
3/ je traite mes 100 photos corrigées (sat, netteté, ...) dans le module d'autiomatisation de Potophiltre et je les sauvegarde en JPG.

Donc il ne faut pas que j'ai à selectionner photo par photo celles qui doivent être traitées par le module "Anti Pixels Morts". Elles doivent TOUTES être traiter sans exception.

Voilà !
J'espère t'avoir aidé.
crdlt,
Alf92
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

J'ai bien compris le problème mais ca sera dans un deuxième temps... (ce week-end par exemple ;) ) Je ne parlais que de première version car il est important que l'algorithme central de traitement fonctionne correctement avant de faire la suite qui est assez longue à faire...

Finalement Je pense que je faire un plugin de type outil dans le genre de la planche contact...

@Antonio : Dans un plugin de type outil est-ce que je peux tout de même (en option) traiter uniquement l'image courante ou c'est mieux de faire 2 plugins distinct un de type image et un deuxième de type outil?
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Si tu modifie l'image courante dans un plugin de type Outil, tu n'auras pas le Undo/Redo sur cette modif. Dans le cas d'une image, c'est destiner à modifier le fichier directement et à recharger cette image en annulant les modifs éventuelles (fonctionResetSaveMenu).
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Oki donc je vais faire un deuxième plugin de type outil pour le moment et je garderai juste le bouton preview qui permettra de tester rapidement sur l'image courante que cela fonctionne

Je vais m'inspirer de ton plugin planche contact pour l'interface...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Tu peux essayer de faire dans le même plugin, un truc du genre modifier l'image en cours avec un message "attention, vos modifications vont être perdues, voulez-vous continuer" et puis un bouton pour les modifications par lot en ignorant l'image en cours.

C'est toi qui voit :wink:
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Très bonne suggestion ;)

Une autre question je voulais savoir si tu accepterais de m'envoyer les sources du plugin planche de contact afin de gagner du temps (en échange par exemple du code source du plugin final ?)
Alf92
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 25
Inscription : 02 avr. 2004 22:54

Message par Alf92 »

hello !
je n'arrive pas à utiliser la version beta du plugin que tu m'as envoyer hier.
j'utilise Photofiltre V5.3.
où trouver la fonction ?
merci.
Alf92
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

C'est normal il faut télécharger la version de PhotoFiltre 5.6 car les plugins ne sont plus compatible avec les anciennes versions...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Ok pour les sources du plugin mais attention car j'utilise pas mal de librairies/composants perso communs à PhotoFiltre et tu vas devoir faire le ménage.

La partie traduction est un peu de la bidouille car j'ai voulu faire au plus vite. Essaye de ragarder ça ce soir car je part demain dans la journée et je sais pas si je vais lire mes mails avant !

Je pense qu'il va te manquer la fonction OuvrirBitmap. Il faut que tu utilise la librairie GraphicEx (Mike Lischke) pour la gestion des formats d'images.

Code : Tout sélectionner

// après simplification car en réalité j'utilise des événements internes
function OuvrirBitmap(NomFichier: string; Bmp: TBitmap): Boolean;
begin
  try
    with TPicture.Create do
    try
      LoadFromFile(NomFichier);
      Bmp.Assign(Graphic); 
      Bmp.Transparent := False;   
      Bmp.PixelFormat := pf24bit;
      Result := True;
    finally
      Free;
    end;
  except
    Result := False;
  end;
end;
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Pas de problème pour le ménage, je regarde ca ce soir! c'est vraiment sympa en tout cas!
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Il me manque également la fonction FiltreOuvrir...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

c'est pas la plus méchante :

Code : Tout sélectionner

function FiltreOuvrir(InclureTout: Boolean): string;
var
  Options: TFilterOptions;
begin
  Options := [foCompact, foIncludeExtension];
  if InclureTout then Options := Options + [foIncludeAll];
  Result := FileFormatList.GetGraphicFilter([], fstBoth, Options, nil);
end;
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Certes mais je connaissais pas du tout :) Merci beaucoup!
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

ba je me doute bien car c'est une fonction perso :wink: