Aperçu en temps réel Live Preview) des modes fusion depuis un menu…

Hi
Certaines Apps graphiques ( Luminar2018, Acorn, Affinity Photo… ) permettent d'avoir un aperçu de l'effet d'un mode de fusion avec un simple survol du menu affichant la liste de ces modes disponibles (29 pour OS X 10.11 et plus pour OS X10.12/14).
C'est très pratique surtout lorsqu'on ne sait pas d'avance de quel mode on a besoin (ce qui est généralement mon cas).
Pour implémenter cette « feature », une classe doit adopter le protocole NSMenuDelegate (après coup ça semble évident ;^).
Perso, j'ai choisi la classe Controller de mon projet préféré
@interface Controller : NSObjectController
Ensuite j'implémente la méthode :

  • (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
    item étant l'élément de menu survolé je récupère son titre (item.title) qui est le nom de la classe du blend Mode voulu
    CIFilter *composite = [CIFilter filterWithName:item.title];
    Et voilà, ça marche très bien, même mieux que dans Affinity Photo par exemple (si, si vraiment ;^) mis cela est certainement dû à mon utilisation d'une sous-classe de NSView pour afficher des CIImage ( même pas d'OpenGL ici).


Oui, je sais , on ne s'en rend pas vraiment compte avec des copies d'écran, mais c'est le pied (imho;^)

Réponses

  • muqaddarmuqaddar Administrateur

    Merci pour ce retour d'expérience.

    En général, il me semble que la preview est afficher dans une mini-fenêtre popup juste à côté du menu (LR, Aperture...).
    N'est-ce pas plus logique que l'image d'origine ne bouge pas tant que la décision n'est pas prise ?

  • JJBeeJJBee Membre

    Ça ne me gène pas à vrai dire.
    Mais bon, ma vision est certainement déformée par le fait que c'est mon projet et que j'ai une vision globale du produit fini (enfin, j'espère).
    Et puis , n'étant pas en phase de beta-tests, je n'ai pas beaucoup de retour.
    et de toutes façons merci ;^)

  • Idéalement il faudrait voir l'image originale et l'image modifiée en même temps. Peut-être avec une vignette montrant l'image de base ? Ou couper la photo en deux, en diagonale, avec une partie modifiée et l'autre non ?

  • LarmeLarme Membre

    Je rejoins presque l'idée de Draken.
    Quid d'avoir ce qu'on voit parfois sur le web, un slider avec une barre verticale qui montre avant/après et positionné par défaut à la moitié ?

  • Joanna CarterJoanna Carter Membre, Modérateur
    juin 2018 modifié #6

    J'utilise DxO pour la plupart de mon travail photo et, là, on trouve un slider, comme dit Larme, ou un bouton.

    J'ai trouvé que Luminar et Affinity sont très lent à réagir aux changements mais j'ai toujours une copie de Photoshop CS3 pour scanner mes négatifs 5"x4" et ça réagit beaucoup plus vite.

    Désolée mais franchement, je dois dire qu'il faut une appli exceptionnelle pour me convaincre de quitter DxO pour les photos numériques :p

  • LarmeLarme Membre

    @Joanna Carter a dit :
    J'utilise DxO pour la plupart de mon travail photo et, là, on trouve un slider, comme dit Larme, ou un bouton.

    J'ai trouvé que Luminar et Affinity sont très lent à réagir aux changements mais j'ai toujours une copie de Photoshop CS3 pour scanner mes négatifs 5"x4" et ça réagit beaucoup plus vite.

    Désolée mais franchement, je dois dire qu'il faut une appli exceptionnelle pour me convaincre de quitter DxO pour les photos numériques :p

    Ou une incompatibilité (ou bug méchant) dû à une mise à jour de l'OS, si DxO continue dans la tourmente...

  • JJBeeJJBee Membre

    Oh lal la, du calme, du calme, du calme (oui, trois fois du calme;^)
    Loin de moi, l'intention, l'idée, le désir de convaincre qui que soit d'abandonner son soft préféré.ce projet est à des années-lumière d'une release candidate.C'est de plus mon 1ère Application Mac Os, mon premier projet Cocoa/Objective-C et j'ai une liste interminable de fonction à implémenter( l'aperçu avant/aprés à l'aide d'une NSSplitView par exemplex… ( et je vais devoir écrire mes propres interface de filtres, les vues IKFilterUIView ayant de grosses limites/lacunes.
    Je suis surtout concentré sur la structure des calques de filtres ( le M de MVC) et il est encore un peu fragile.
    Cela dit, je suis attentif à toute remarques mais j'ai, si j'ai bien compris, un fort esprit critique ;^)

  • @JJBee a dit :
    C'est de plus mon 1ère Application Mac Os, mon premier projet Cocoa/Objective-C et j'ai une liste interminable de fonction à implémenter( l'aperçu avant/aprés à l'aide d'une NSSplitView par exemplex… ( et je vais devoir écrire mes propres interface de filtres, les vues IKFilterUIView ayant de grosses limites/lacunes.

    Si tu débutes en développement Apple, choisir l'objective-C est carrément une erreur stratégique .. SWIFT POWER !

  • Amusant, parce que c'était ma prochaine question ;^)
    Je la pose donc (pas sûr que ce soit le bon endroit)
    Qu'ai-je à gagner à passer à Swift
    Tous les frameworks sont-ils utilisables ( pour l'instant, j'utilise bien sûr Cocoa, Quartz et QuartzCore)?
    Que manque-t-il à Swift vs Objective-C ?

  • DrakenDraken Membre
    juin 2018 modifié #11

    @JJBee a dit :
    Amusant, parce que c'était ma prochaine question ;^)
    Je la pose donc (pas sûr que ce soit le bon endroit)
    Qu'ai-je à gagner à passer à Swift

    TOUT !

    Tous les frameworks sont-ils utilisables ( pour l'instant, j'utilise bien sûr Cocoa, Quartz et QuartzCore)?

    OUI. Regarde la doc de n'importe quelle API Apple. Il y a un onglet Objective-C et un onglet Swift.

    Que manque-t-il à Swift vs Objective-C ?

    La complexité, [l'amour [immodérée [des][] ] ], et les syntaxes de boucles du C (présentes dans Swift 1 et retirés ensuite pour améliorer la lisibilité du code et éliminer une source de bugs) ..

  • C'est bizarre, tout ça me parait un peu idyllique et j'aime bien le principe des messages (SmallTalk) (suis-je le seul au monde ?).

  • Joanna CarterJoanna Carter Membre, Modérateur

    @JJBee a dit :
    … et j'aime bien le principe des messages (SmallTalk) (suis-je le seul au monde ?).

    Oui, peut-être :D

  • @JJBee a dit :
    C'est bizarre, tout ça me parait un peu idyllique

    Swift n'est pas apparu d'un coup de baguette magique. C'est la mise en oeuvre de concepts informatiques inventés ces 20 dernières années, alors qu'objective-C est un vénérable ancêtre. Swift a germé pendant 4 ans dans les laboratoires de Cupertino avant de faire sa première apparition publique en 2014. Ce n'est pas un truc bricolé sur un coin de table, mais quelque chose d'élaboré par des développeurs utilisant Objective-C tous les jours ..

    Moi j'adore, alors que l'Obj-C a toujours été un gros caillou dans ma chaussure. Jette un oeil dessus pour te faire ta propre idée.

    Ce serait dommage de se lancer dans l'apprentissage d'un outil destiné à disparaitre à plus ou moins longue échéance. Dans l'état actuel des choses, je m'attend à ce qu'Apple déclare l'Objective-C obsolète d'ici 4 à 5 ans.

  • Oui, je le sens bien que doit tout recommencer en Swift (tout, ces 4classes : un AppDelegate, un sous-classe de NSView, un controller NSObjectController et un sous-classe de NSObject à oui et 22sous-classes de CIFilter) je pourrais peut-être commencer par la view ?
    Mais dans 4-5 ans, j'espère en être à la version 3 (4 ?).
    Ce que j'aime aussi avec l'Objective-C c'est l'intégration avec X-Code (8.2 pour moi) la complétion du code est géniale, en fait je saisis très peu de code, c'est Xcode qui fait presque tout.
    Quand je vois avec facilité j'ai ajouté la sauvegarde at le chargement de la pile de calques (des presets en quelque sorte), je suis bluffé.

  • @JJBee a dit :

    Ce que j'aime aussi avec l'Objective-C c'est l'intégration avec X-Code (8.2 pour moi) la complétion du code est géniale, en fait je saisis très peu de code, c'est Xcode qui fait presque tout.

    Même constat pour Swift. Essaye, tu verras bien !

  • L'Objective-C c'est le BIEN et STABLE !

    Plus sérieusement, tu sais lire de l'Objective-C (puisque tu en fais actuellement), donc tu es en accord avec le meilleur conseil que je pourrais te donner si tu faisais du Swift.
    Il faut savoir lire au moins les deux, car les ressources (sample code, tutos, etc.) peuvent se trouver dans l'un ou l'autre language. Après, le reste c'est du Cocoa/CocoaTouch.

    Par contre, si tu es encore avec Xcode 8.2, je te déconseillerais peut-être de faire du Swift, tu dois être en Swift 3 là. Alors qu'on est en Swift 4 et qu'on va « bientôt » passer en Swift 5.
    Le problème, c'est que c'est le language qui change, pas forcément les frameworks Cocoa/CocoaTouch, et XCode permet un update aisé, mais que de la version précédente à la version actuelle.
    Si tu passais maintenant au Swift, d'ici la rentrée et Swift 5, il te faudrait faire une update intermédiaire d'XCode.
    Après, concernant l'update des Pods/Carthage que tu pourrais utilisés, là, c'est un peu plus compliqué, il faut attendre qu'ils se mettent à jour en même temps que toi. Après, normalement, dans le futur, on pourra laisser du vieux code Swift en disant "compile/interprète en tant que Swift de version N et ne m'embête pas" à XCode.

  • @JJBee a dit :

    Ce que j'aime aussi avec l'Objective-C c'est l'intégration avec X-Code (8.2 pour moi)

    Pourquoi Xcode 8.2 ? Tu es limité par ta version d'OS ?
    La dernière version officielle est la 9.4.1, et Xcode 10 est en bêta pour une sortie en Septembre ou Octobre.

  • muqaddarmuqaddar Administrateur

    @Joanna Carter a dit :
    J'utilise DxO pour la plupart de mon travail photo et, là, on trouve un slider, comme dit Larme, ou un bouton.

    J'ai trouvé que Luminar et Affinity sont très lent à réagir aux changements mais j'ai toujours une copie de Photoshop CS3 pour scanner mes négatifs 5"x4" et ça réagit beaucoup plus vite.

    Désolée mais franchement, je dois dire qu'il faut une appli exceptionnelle pour me convaincre de quitter DxO pour les photos numériques :p

    Je n'ai jamais utilisé DxO parce qu'il n'y avait pas de catalogueur. C'est dommage.
    Et j'en ai testé après Aperture, je suis resté un an avec Capture One, et je suis revenu à Lightroom.
    J'ai acheté Luminar à mon père qui trouve Photos trop limité, mais le catalogueur promis tarde à arriver.
    Désolé pour tout ce hors-sujet.

  • @JJBee a dit :
    Oui, je le sens bien que doit tout recommencer en Swift (tout, c'est 4classes : un AppDelegate, un sous-classe de NSView, un controller (NSObjectController) et un sous-classe de NSObject à oui et aussi 22sous-classes de CIFilter) je pourrais peut-être commencer par la view ?
    Mais dans 4-5 ans, j'espère en être à la version 3 (4 ?).
    Ce que j'aime aussi avec l'Objective-C c'est l'intégration avec X-Code (8.2 pour moi) la complétion du code est géniale, en fait je saisis très peu de code, c'est Xcode qui fait presque tout.
    Quand je vois avec facilité j'ai ajouté la sauvegarde at le chargement de la pile de calques (des presets en quelque sorte), je suis bluffé.

    @Draken a dit :

    @JJBee a dit :

    Ce que j'aime aussi avec l'Objective-C c'est l'intégration avec X-Code (8.2 pour moi)

    Pourquoi Xcode 8.2 ? Tu es limité par ta version d'OS ?
    La dernière version officielle est la 9.4.1, et Xcode 10 est en bêta pour une sortie en Septembre ou Octobre.

    Mon vénérable MBP 17" C2D 3.06GHz (mid 2009) est limité au 10.11. j'adore cette bécane (écran 17" mat !).

  • @Larme a dit :
    L'Objective-C c'est le BIEN et STABLE !

    Plus sérieusement, tu sais lire de l'Objective-C (puisque tu en fais actuellement), donc tu es en accord avec le meilleur conseil que je pourrais te donner si tu faisais du Swift.
    Il faut savoir lire au moins les deux, car les ressources (sample code, tutos, etc.) peuvent se trouver dans l'un ou l'autre language. Après, le reste c'est du Cocoa/CocoaTouch.

    Par contre, si tu es encore avec Xcode 8.2, je te déconseillerais peut-être de faire du Swift, tu dois être en Swift 3 là. Alors qu'on est en Swift 4 et qu'on va « bientôt » passer en Swift 5.
    Le problème, c'est que c'est le language qui change, pas forcément les frameworks Cocoa/CocoaTouch, et XCode permet un update aisé, mais que de la version précédente à la version actuelle.
    Si tu passais maintenant au Swift, d'ici la rentrée et Swift 5, il te faudrait faire une update intermédiaire d'XCode.
    Après, concernant l'update des Pods/Carthage que tu pourrais utilisés, là, c'est un peu plus compliqué, il faut attendre qu'ils se mettent à jour en même temps que toi. Après, normalement, dans le futur, on pourra laisser du vieux code Swift en disant "compile/interprète en tant que Swift de version N et ne m'embête pas" à XCode.

    Ha, enfin un réponse positive en faveur de l'Objective-C (merci) !
    Mais c'est vrai que je ne peux pas lire/comprendre du code Swift .
    Il ya encore plein de choses que je ne connais pas (CoreData…)
    Et j'ai bien vu que la majorité de exemples from Apple sont en Swift.
    Merci (d'avoir essayé);^)

  • Joanna CarterJoanna Carter Membre, Modérateur

    @JJBee a dit :
    Mon vénérable MBP 17" C2D 3.06GHz (mid 2009) est limité au 10.11. j'adore cette bécane (écran 17" mat !).

    Tu sais que des APIs ont changés depuis 10.11? Comment pourras-tu vérifier si ton appli tournera sous 10.12, 10,13 et 10.14 ?

  • @Joanna Carter a dit :

    @JJBee a dit :
    Mon vénérable MBP 17" C2D 3.06GHz (mid 2009) est limité au 10.11. j'adore cette bécane (écran 17" mat !).

    Tu sais que des APIs ont changés depuis 10.11? Comment pourras-tu vérifier si ton appli tournera sous 10.12, 10,13 et 10.14 ?

    Je confie mon app à quelqu'un qui possède un iMac qui tourne sous 10.14.
    Dans le futur j'espère m'associer avec un éditeur qui pourra faire tous ces tests (croisons les doigts).

  • @JJBee a dit :

    @Joanna Carter a dit :

    @JJBee a dit :
    Mon vénérable MBP 17" C2D 3.06GHz (mid 2009) est limité au 10.11. j'adore cette bécane (écran 17" mat !).

    Tu sais que des APIs ont changés depuis 10.11? Comment pourras-tu vérifier si ton appli tournera sous 10.12, 10,13 et 10.14 ?

    Je confie mon app à quelqu'un qui possède un iMac qui tourne sous 10.14.
    Dans le futur j'espère m'associer avec un éditeur qui pourra faire tous ces tests (croisons les doigts).

    Alors ça c'est la pire des mauvaises idées.
    Change de machine si tu veux développer un tant soit peu sérieusement.

Connectez-vous ou Inscrivez-vous pour répondre.