PhotoFiltre

Le forum officiel de PhotoFiltre
Nous sommes le 19 Mar 2019 11:40

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
 Sujet du message: Question sur le zoom de Photofiltre
MessagePosté: 30 Juil 2008 20:47 
Hors ligne
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Inscription: 28 Juin 2007 15:52
Messages: 21
Sexe: Non spécifié
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


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 31 Juil 2008 13:04 
Hors ligne
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Inscription: 28 Oct 2003 22:49
Messages: 11076
Sexe: Non spécifié
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:


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 31 Juil 2008 14:11 
Hors ligne
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Inscription: 28 Juin 2007 15:52
Messages: 21
Sexe: Non spécifié
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.


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 01 Aoû 2008 10:47 
Hors ligne
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Inscription: 28 Oct 2003 22:49
Messages: 11076
Sexe: Non spécifié
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:


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 01 Aoû 2008 11:52 
Hors ligne
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Inscription: 28 Juin 2007 15:52
Messages: 21
Sexe: Non spécifié
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é.


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 01 Aoû 2008 16:21 
Hors ligne
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Inscription: 28 Oct 2003 22:49
Messages: 11076
Sexe: Non spécifié
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).


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 01 Aoû 2008 18:09 
Hors ligne
Nouveau(elle)
Nouveau(elle)|Nouveau|Nouvelle

Inscription: 28 Juin 2007 15:52
Messages: 21
Sexe: Non spécifié
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.


Haut
 Profil  
 
 Sujet du message: Re: Question sur le zoom de Photofiltre
MessagePosté: 02 Aoû 2008 10:13 
Hors ligne
Administrateur(trice)
Administrateur(trice)|Administrateur|Administratrice

Inscription: 28 Oct 2003 22:49
Messages: 11076
Sexe: Non spécifié
Je déplace dans la partie programmation :wink:


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com