IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Découpage d'images et création btns personnalisés


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut Découpage d'images et création btns personnalisés
    Bonjour.
    Ouf ca fait très lgtps que je n'étais plus passé ici !
    Et bien je vais revenir même très souvent
    Voilà je dois développer pour un camping un logiciel de gestion.
    Le plus gros du travail consiste à scanner le plan d'état major du camping, le découper en image et le retranscrire dans BCB. Chaque parcelle doit être un bouton sur laquelle on peut cliquer pour avoir des infos.
    En HTML c'est assez simple de faire du découpage d'images, mais je suis un peu rouillé au niveau de BCB. J'utilise la version 5 et 6. Avez-vous une suggestion concernant le placement de mes différentes images et si vous avez déja fait ce type de "découpage" dans BCB?
    Merci d'avance,

  2. #2
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Comme vous avez l'événement OnClick sur un TImage, vous pourriez par exemple découper l'image de base en plusieurs parties (ce n'est pas très difficile à programmer) et vous programmez ensuite l'événement onClick de chacune d'elle. Vous pouvez renvoyer au même événement OnClick, "caster le sender" pour le convertir en un pointeur vers l'image cliquée, ce qui vous donne par exemple un Tag qui définit la portion en question.

    Ça ne me paraît pas très difficile à réaliser.

    À bientôt
    Gilles

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Merci pour votre réponse.
    Justement l'événement OnClick sur chaque image ca ok, pas de problème. Mais c'est au sujet de la programmation du découpage des images que je ne sais pas comment faire exactement.. En fait j'ai peur que mes images (qui ne sont pas des carrés).. Ne se collent pas les unes aux autres... Je ne sais pas si je m'exprime bien en fait..

  4. #4
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Il serait très facile à partir d'une image quelconque de créer une méthode qui la subdivise en n parties en x et m parties en y pour créer n*m petites images de dimension x/n et y/m. Si n ou m ne divise pas exactement respectivement x ou y, ça ne sera certes pas parfait car il existera des lignes qui ne seront pas reprises dans les sous-parties si l'on veut des sous-images identiques, sinon, si on accepte des sous-images de dimensions différentes, les sous-images du bord recupéreront le restant et leurs dimensions seront légèrement différentes dépendant des données n, m, x et y.

    À bientôt
    Gilles

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Merci pour votre méthode. Justement je ne voulais pas cela car ce n'est pa parfait.
    N'y a-t-il pas moyen de créer une page HTML dans laquelle je subdiviserais mon image comme je veux et de l'insérer dans une Form?
    Cela est-il possible?
    Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    J'ai en fait trouvé une doc sur un petit soft additionnel : Map Objects 2.x
    La doc est ici et apparemment ca doit marcher avec BCB5 : http://www.infotek.be/Fichiers/borlandc.pdf
    Le problème est que je ne sais pas où la trouver ni si c'est libre de droits. Les recherches sur le web ne m'en disent guère plus...
    Quelqu'un a-t-il déja utilisé ce composant?
    Merci

  7. #7
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par arnaud_verlaine
    Merci pour votre méthode. Justement je ne voulais pas cela car ce n'est pa parfait.
    Si l'image n'est pas trop subdivisée, l'imperfection sera peu visible. Imaginez une image d'à peu près 1000*1000 à subdiviser en 10*10, chaque image sera de 100*100, si la dernière image est différente, ça ne srea que de quelques pixels par exemple 103*98, ça ne se verra pas.

    À bientôt
    Gilles

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Oui mais nous avons regardé et c'est un camping de 800 parcelles, il y aura au total 1000 subdivisions !!
    Donc bon... J'aime bosser en C++ Builder mais le problème est cette fameuse carte de départ qui finalement est le plus gros du boulot. Nous avions donc penser faire cela en php avec découpage HTML cela serait plus simple mais nous voulons rester en programmation win32 afin d'avoir un déploiement plus rapide (pas besoin de serveur web pour php etc...) mais cela ne me parait pas des plus simples quand même niveau "découpage"...

  9. #9
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Au départ, vous avez, si je comprend bien, une image. De quelle dimension est cette image? En combien de fois voulez-vous la subdiviser en x et en y? C'est ces données là qu'il faut connaître pour savoir en fait quelles dimensions auront les images en général et les images particulières.

    Imaginez par exemple que vous ayez un bitmap B à subdiviser en n parties en x et m parties en y, on aura L et H en général et DerL et DerH pour les dernières calculées comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    L=B->Width/n;
    H=B->Height/m;
    DerL=B->Width-(n-1)*L;
    DerH=B->Height-(m-1)*H;
    Si les données sont acceptables, il y aura peu de différences en L et DerL, et H et DerH.

    À bientôt
    Gilles

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    l'image d'état major fait 2m sur 2m.. Bon bien entendu nous allons la ramener au format A3 (le A4 ca fera ptet petit).
    Le problème est que je comprend tout à fait la méthode que vous me proposer, mais il ne s'agit pas ici de quadrillage !! Les formes des parcelles ne sont pas de formes carrées ou rectangulaire, mais aléatoires.. Je dois donc pouvoir (dans l'absolu hein.. ) créér manuellement pour chaque parcelle de terrain un bouton à placer dessus par exemple et qui aurait la même forme, là le tour serait jouer. En dernier recours, je peux utiliser un programme style photoshop pour découper l'image de départ en 1000 images et les insérer une à une dans BCB et leur donner un événement OnClick mais là dans 10 ans j'y suis encore moi hein !!
    C'est pour ca que je cherchaus une méthode pour faire "le contour" d'une parcelle et de pouvoir lui donner un événement OnClick...
    Mais j'en demande ptet bcp là..

  11. #11
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par arnaud_verlaine
    Les formes des parcelles ne sont pas de formes carrées ou rectangulaire, mais aléatoires
    Voulez-vous dire que les dimensions en x et en y des parcelles peuvent changer c'est-à-dire qu'il va s'agir de rectangles de dimensions différentes ou bien voulez-vous dire que les parcelles peuvent être tantôt triangulaires tantôt circulaires ou autre?

    Si je comprends bien les parcelles vont être rectangulaires mais chaque rectangle pourra avoir des dimensions différentes. Cette répartition doit-elle se faire une seule fois à titre définitif ou bien voulez-vous pouvoir modifier les parcelles à tout moment?

    Vous parlez en mètres ou en A3/A4, il faudrait parler en pixels. Attention une image a une dimension maximale de 32000 pixels en x et en y. Ça devrait suffire mais il y a cette limite.

    À bientôt
    Gilles

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    La forme des parcelles est aléatoire, c'est à dire tantot triangulaire, tantot rectangle tant n'importe comment finalement..
    Imaginez la carte de france avec les départements...Ben c'est ca que j'ai quoi !!
    Concernant la taile de l'image je sais que quand je l'aurai sa dimension sera A3. Je la numériserai et donc j'aurai une image. C'est après que je bloque...
    Si jamais je mets mon image en fond d'écran dans une form, que on spécifie des Timages un peu partout mais sans y donner d'images attribuées, ca devrait rester transparent et ca devrait aller je pense non?

  13. #13
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par arnaud_verlaine
    Si jamais je mets mon image en fond d'écran dans une form, que on spécifie des Timages un peu partout mais sans y donner d'images attribuées, ca devrait rester transparent et ca devrait aller je pense non?
    Les TImages sont rectangulaires, d'après ce que vous dites ça ne va pas résoudre votre problème. En fait, si je comprends bien, vous voulez pouvoir délimiter des surfaces aléatoires n'importe où sur une grande image de départ (pour simplifier ces surfaces peuvent être définies par des lignes droites donc ce seront des poligones quelconques) et y associer un clic. Mais l'ensemble de ces surfaces n'est pas censé représenter toute l'image. Étant donné les formes diverses des parcelles, il y aura des zones de l'image non associées à une parcelle sudivisée. Si vous devez faire ces subdivisions à la main et non en automatique, vous n'êtes pas sorti de l'auberge.

    À bientôt
    Gilles

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Citation Envoyé par Gilles Louïse
    Si vous devez faire ces subdivisions à la main et non en automatique, vous n'êtes pas sorti de l'auberge.
    Voilà je pense qu'on se comprend là
    Je pense que le meilleur moyen alors est de mettre l'image en fond d'écran, de mettre des TImages dessus de forme rectangulaire la plus grande que l'on peut mettre dans la dites parcelle. Disons qu'on ne saura pas cliquer sur le bord de l'image mais je suppose que l'utilisateur va tjs cliquer plus ou moins au milieu de la parcelle en question.. Ou alors oui ce n'est pas possible. En faisant ce système ce n'est pas la rapidité certes d'une fonction, mais en qques jours ( ) je pense que toutes les images seront placées...
    Je ne vois que cette soluce. Si qqun a une autre idée, qu'il n'ai pas peur de se montrer

  15. #15
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par arnaud_verlaine
    la plus grande que l'on peut mettre dans la dites parcelle.
    Comment vont-être définies ces parcelles? J'avoue que j'ai du mal à vous comprendre. Est-ce seulement visuel (on clique dans l'image) ou bien aura-t-elle une forme précise? Si oui, qui va lui donner cette forme? Si c'est visuel, étant donné qu'on peut connaître les coordonnées en x et en y d'un clic, il me paraît inutile de quadriller l'image par des TImage.

    À bientôt
    Gilles

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Citation Envoyé par Gilles Louïse
    Si c'est visuel, étant donné qu'on peut connaître les coordonnées en x et en y d'un clic, il me paraît inutile de quadriller l'image par des TImage.
    Ben voilà
    J'avais pas pensé à ça... Je crois qu'avec ca je suis bon
    Non au niveau du découpage en rectangle, voici en image ce que j'essaie de dire depuis tantot :
    www.infotek.be/Fichiers/france.gif
    mais en effet, je pense que les simples coordonnées X et Y me suffisent sans pour encore redessiner une image dessus...
    Merci en tout cas pour vos conseils !

  17. #17
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    Pour t'affranchir des zones clickables rectangulaires, tu pourrais aussi faire une image qui a les mêmes dimensions que ton image affichée. Cette deuxième image (appelons-la C) sert à définir la zone cliquée grâce à un code de couleur (couleur1=zone1, couleur2=zone2, etc). C'est très facile à obtenir puisque tu copies l'image de base et peints directement les zones avec un programme de dessin.

    Ensuite, à partir des coordonnées X/Y du click sur l'image principale, tu vas pêcher la couleur correspondante dans l'image C et tu sais immédiatement quelle zone a été sélectionnée par l'utilisateur...

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    C'est exactement ce que je pensais faire !!
    Merci du conseil

  19. #19
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Bien que ce soit résolu...

    - soit tu prends le "risque" de développer un algo qui va détecter le contour
    des parcelles depuis une image.

    - soit tu te contentes de capturer manuellement le contour des parcelles
    sur l'image.

    Dans les deux cas on récupère des sommets et une parcelle est alors traitée
    comme un polygone.

    La gestion pourrait se faire avec les API WINDOWS :

    CreatePolygonRgn, PtInRegion, PaintRgn (ou TCanvas::Polygon) etc...

    Sinon tu peux également consulter le post-it de JEG : jAPI : Une API pour C++.

    A plus !

  20. #20
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 332
    Par défaut
    Bonjour,

    As-tu pensé à essayer avec du flash (tu importes une anim dans ton code ) ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [sh] Création d'une appli de découpage d'images
    Par ettar dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 17/05/2014, 19h51
  2. [débutant] BD d'images numériques: création et méthode d'accès
    Par thibouille dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/11/2007, 18h23
  3. Réponses: 11
    Dernier message: 27/09/2007, 17h59
  4. [VB.NET][VS2005] Découpage d'images
    Par Ourszor dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/04/2006, 11h20
  5. [CSS] Découpage header (image fond)
    Par rudwolf dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/03/2006, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo