PhotoFiltre

Le forum officiel de PhotoFiltre
It is currently 16 Jun 2019 13:21

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: Question sur le zoom de Photofiltre
PostPosted: 30 Jul 2008 21:47 
Offline
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Joined: 28 Jun 2007 16:52
Posts: 21
Gender: None specified
Bonjour,

Je suis actuellement en train d'écrire un programme afin de créer des skins pour le logiciel VirtualDJ.

Une skin de VirtualDJ se compose d'un fichier image (.bmp) et d'un fichier de code (.xml). Le fichier de code contient les positions de chaque élément, bouton, texte, slider etc.

Actuellement, pour créer des skins, j'utilise notepad2 pour l'affichage du xml, et photofiltre pour l'affichage de l'image.
Le problème c'est que je dois récupérer des coordonnées d'une sélection dans photofiltre pour ensuite les écrire à la main dans notepad2.
C'est pour celà que j'ai commencé l'écriture d'un programme qui affiche l'image, l'utilisateur peut ensuite faire une sélection et en deux clics, mettre les coordonnées de la sélection dans le xml.

Mon problème est le suivant:
Je n'arrive pas à afficher de zoom de l'image et j'aimerai savoir comment celà est fait dans Photofiltre. Je programme en RealBasic, et il y a bien une fonction pour redimmensionner une image, mais c'est un redimensionnement et non un zoom comme on peut le faire à la molette de la souris dans Photofiltre.

J'ai tout de même réussi à créer une fonction qui fait un zoom mais le temps de calcul est assez long.

Est-ce que Photofiltre utilise la bibliothèque gdi32.dll pour faire ce zoom, et plus spécialement, la fonction StretchBlt ?

Mon programme n'est aucunement un concurrent à Photofiltre, c'est pour cela que je me permet de demander ça.

Cordialement,

JeremK


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 31 Jul 2008 14:04 
Offline
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Joined: 28 Oct 2003 23:49
Posts: 11158
Gender: None specified
Dans la version 6 de PF j'utilise essentiellement l' api windows StretchBlt

Dans la version studio, c'est une lib que j'ai programmé en Delphi vu que ça doit gérer les modes de fusion et la transparence. C'est un peu plus lent mais en théorie mais en pratique, je trouve pas trop :oops:


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 31 Jul 2008 15:11 
Offline
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Joined: 28 Jun 2007 16:52
Posts: 21
Gender: None specified
Ok, merci pour l'info.

Malheureusement mon langage de programmation (REALBasic) gère mal l'utilisation de StretchBlt pour dessiner dans une image. Seul le dessin dans un canvas est possible, et ensuite quand je dessine la boite de sélection ça fait des saccades dans l'image.

J'espère trouver une solution sur le forum de REALBasic.


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 01 Aug 2008 11:47 
Offline
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Joined: 28 Oct 2003 23:49
Posts: 11158
Gender: None specified
Seul le dessin dans un canvas est possible
==> s'il faut travailler en mode pixel par pixel, ça va pas être rapide en effet :cry:


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 01 Aug 2008 12:52 
Offline
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Joined: 28 Jun 2007 16:52
Posts: 21
Gender: None specified
Merci pour les précisions Antonio.

Donc dans photofiltre il y aurai 2 canvas superposés? un pour afficher la sélection et l'autre pour afficher l'image zoomée?

Pour l'instant je travaille en pixel par pixel sur une zone qui fait la taille du canvas / (zoom/100).
Ce n'est pas trop lent, quand on a un pc puissant pour passer du zoom 100% à 200% par exemple. Mais ensuite quand l'utilisateur bouge un scrollbar pour se déplacer dans l'image, là c'est plus lent.

Un affichage identique à photofiltre dans mon programme serait le must. Mais vu que je débute en programmation c'est loin d'être gagné.


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 01 Aug 2008 17:21 
Offline
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Joined: 28 Oct 2003 23:49
Posts: 11158
Gender: None specified
Attention, il ne faut pas zoomer la totalité de l'image juste pour en afficher une partie. Il faut calculer la partie de l'image nécessaire (sans zoom) qui sera affichée (une fois zoomée).
Il faut toujours travailler par clipping sinon sur une image de 4000 pixels en zoom 16 on dépasse les limites physiques de n'importe quel PC même actuel :wink:

Quelques règles de 3 avec des marges d'erreurs. Ensuite on applique un StretchBlt (ou autre) sur la partie de l'image non zoomée vers le canvas (affichage avec zoom).


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 01 Aug 2008 19:09 
Offline
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Joined: 28 Jun 2007 16:52
Posts: 21
Gender: None specified
En effet je m'en suis rendu compte. Avec un zoom 16, la mémoire utilisée par mon programme montait à 550Mo.
J'ai corrigé ça, et c'est devenu plus rapide.


Top
 Profile  
 
 Post subject: Re: Question sur le zoom de Photofiltre
PostPosted: 02 Aug 2008 11:13 
Offline
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Joined: 28 Oct 2003 23:49
Posts: 11158
Gender: None specified
Je déplace dans la partie programmation :wink:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group