8
votes

Mise en œuvre d'un éditeur d'images côté client - Quel est le meilleur moyen?

Nous voulons une application Web qui permet à un utilisateur de modifier des images sur le navigateur et nous essayons de décider de la technologie à utiliser. Nous voulons prendre en charge une personnalisation d'image simple, telle que le redimensionnement de haute qualité, le culture, la fusion d'images et les transformations de couleurs, ainsi que l'ajout d'éléments de texte avec des polices et des couleurs différentes.

Les options actuelles sont:

  1. flash: pas de soucis sur la compatibilité croisée croisée; pourrait utiliser la même bibliothèque d'images sur le client et le serveur; Aucun support iPhone / iPad.
  2. Java (compilé à JavaScript avec GWT): Besoin de trouver une bonne image bibliothèque dans Pure Java afin qu'il puisse être compilé à JS.
  3. Uni Old JavaScript + HTML5: Peut être un désordre en raison de plusieurs navigateurs; Peut avoir besoin d'écrire un code d'édition d'image à partir de zéro.

    Voici ce qui est le plus important pour nous / critères de choix:

    • Cohérence de l'image: L'image que les modifications du client sur le navigateur doivent être exactement identiques à celles que nous utiliserons éventuellement sur le backend. Nous pouvons y parvenir par (a) avoir la même bibliothèque sur le client et le serveur pour traiter les images, (b) que le client génère l'image et le télécharger sur le serveur ou (c) utiliser deux bibliothèques de traitement d'images différentes sur le client / serveur et espoir le meilleur en termes de cohérence. L'option (a) semble meilleure, mais il ne serait possible que si nous utilisons Flash ou Java / GWT. Nous n'aimons pas l'option (b) parce que les images sont grandes; Nous préférerions sauver une séquence d'opérations pour effectuer sur une image brute que d'enregistrer plusieurs images transformées. Et nous ne savons pas vraiment si l'option (c) est sûre ou non.
    • Évolutivité: Nous préférons que le client fasse autant de travail possible pour diminuer la charge du serveur.
    • La qualité de l'image doit être maintenue élevée
    • Plate-forme croisée: nous souhaitons prendre en charge autant de plateformes que possible sans que tout réécrit (gros négatif pour Flash dû à iPhone / iPads).

      Quel chemin recommandez-vous? Y a-t-il une alternative que nous sommes manquants?

      Merci pour une aide!


4 commentaires

Je sonne comme Flash satisfait la cohérence de l'image, l'évolutivité, la qualité d'image et l'effort de développement inter-plateforme moins iOS. En tant que personne compétente de l'objectif-C et un développeur ActionScript, j'ai tendance à voir le monde à travers la vision de "couvrir tout sauf iOS avec Flash et écrivez une application iOS avec elle."


Quand est la date de livraison? A-t-il besoin d'être opérationnel dans les prochains mois et si vous n'alliez pas que tout le monde n'utilisera pas le navigateur conforme HTML5. Le prochain navigateur suivant de FYI Microsoft, IE9 prend en charge HTML5, mais il ne fonctionnera pas sur Windows XP.


"Aucun support iPhone / iPad" s'applique aussi à Java. Edit: Je réussi à rater le "compilé à JavaScript avec GWT" (étrange :).


@Tontgeril: Oui, ça sonne comme une façon raisonnable d'y aller @allan: bon point. Nous voulons une version en cours d'exécution relativement bientôt, c'est un gros négatif pour HTML5 .. Mais que diriez-vous simplement JavaScript simple sans HTML5? @Lars: Étrange en effet :)


4 Réponses :


2
votes

Nous sommes allés avec 3 parce que les applets Java sont à peu près morts et que nous n'aimons pas Flash. HTML5 est, espérons-le, l'avenir.
GWT sonne comme une option intéressante mais nous ne pouvions pas l'utiliser car le côté serveur est .NET. Ecrire un code d'édition d'image est amusant :)


5 commentaires

Je suis triste que "nous n'aimons pas Flash", c'est ce qu'il est tombé à.


Rien de mal, mais ne seriez-vous pas d'accord pour dire que "ne l'utilise pas parce que je n'aime pas ça" n'est pas une réponse très utile.


@Mk avez-vous envisagé Silverlight?


@Allan Non, nous essayons de ne pas être enfermés à Microsoft lorsque cela est possible.


Voici pourquoi Apple n'aime pas Flash: Apple.com/hotnews/hot Flash .



1
votes

Je choisirais JS + HTML5 \ Canvas. Si vous êtes juste au début de la rédaction de cette application et qu'il n'y a pas de dépendances sur la technologie, c'est le meilleur choix. Les navigateurs s'améliorent rapidement contrairement au plugin Flash ou Java (40 à 60% des ordinateurs de bureau l'ont eu?). Le seul monstre effrayant qui tient la révolution est, c'est-à-dire, mais je pense que IE9 nous amènera à la nouvelle ère, où nous pouvons faire des applications multi-navigateurs réellement cool sur le Web à l'aide de nouvelles normes :) Vous pouvez donc commencer maintenant et 2-3 mois plus tard, IE9 viendra avec un soutien en toile et tout ce genre de fantaisie. Tous les autres navigateurs sont prêts en ce moment, mais ils vont évoluer et améliorer la vitesse du moteur JS. J'espère :)


5 commentaires

Mais jusqu'à ce que IE9 devienne largement répandu (ce qui sera un moment), vous disez fondamentalement "la visser" à tous vos utilisateurs à savoir.


En effet ... il semble que ce sera au moins quelques années jusqu'à ce que le pourcentage d'utilisateurs sur IE8 ou moins soit suffisamment petit pour être négligeable (nous permettant de leur dire "la visser" pour vivre dans le passé)


Des millions d'utilisateurs sur WindowsXP utilisent des navigateurs normaux, ils ne se limitent pas à coire :)


Mais des millions d'autres sont toujours bloqués en utilisant IE, pour une raison quelconque. Il suffit de jeter, c'est-à-dire que le support repousse plus de la moitié de vos clients potentiels. (C.-à-d. Est toujours le navigateur majoritaire.)


Installation d'un navigateur antique, dysfonctionnel, monopolistique, abusif et progresseur. N'est-ce pas l'horrible d'une expérience.



5
votes

flash définitivement. Si vous allez avec JavaScript et HTML5, vous disez fondamentalement «la visser» à tous les utilisateurs IE. Le moteur de rendu de Flash est plus rapide que ce navigateur ne soit plus rapide que le navigateur et la vitesse serait cohérente sur tous les navigateurs. En outre, Flash a des bibliothèques de manipulation d'images très puissantes intégrées, alors que dans JavaScript, vous devez les écrire vous-même.

EDIT: Parce que je viens de recevoir un bowvote sur une réponse de 3 ans, je suis obligé de dire que ce n'est plus vrai, et vous devriez utiliser des normes Web telles que Parce qu'ils sont à peu près omniprésents ces jours-ci. N'utilisez pas Flash.


11 commentaires

Je suis d'accord avec toi. @rod Voir la volière et Picnik pour des exemples de ce qui est possible pour l'édition d'image avec Flash / ActionScript.


Merci pour les réponses .. Je suppose qu'un négatif pour Flash est que personne dans notre équipe ne l'a utilisé auparavant .. Je suppose que nous devrions apprendre :) Recommanderiez-vous de le faire en flex au lieu de flash plain? Enfin, qu'en est-il de JavaScript, sans l'utilisation de HTML5?


@rod: Flex est un excellent cadre et je le recommande vivement pour le développement flash. C'est assez facile à ramasser, même si j'avoue que je n'ai rien construit aussi puissant qu'un éditeur d'images, alors prenez-la avec un grain de sel. En ce qui concerne simplement JavaScript sans utiliser HTML5, vos performances vont subir beaucoup par rapport au flash, en particulier pour les navigateurs inférieurs (en lecture: Internet Explorer). Je ne le recommanderais pas. Si vous finissez par utiliser JavaScript, essayez de tirer parti des fonctionnalités HTML5 telles que dans les navigateurs qui le supportent et se dégradent gracieusement dans les navigateurs qui ne le font pas.


@rod: De plus, pour définir la détection de fonctionnalités (pour des éléments tels que ) plus facile, jetez un coup d'œil à modernizr .


En utilisant Flash, vous dites que vous disez à tous les utilisateurs iPhone / iPad. En outre, Flash est à peu près une impasse (tellement qu'elle a maintenant une fonctionnalité pour s'exporter vers HTML5 ...).


@Shautitieh: Pour iOS, vous devriez toute façon une application séparée. Et je ne suis pas d'accord avec vous. Ce sera une impasse une fois que l'adoption de navigateurs capables HTML5 est suffisamment répandue, mais en ce moment, le flash est toujours plus puissant que le dénominateur commun le plus bas des navigateurs (lecture: IE <9) pour ce type de fonctionnalités. Bien sûr, HTML5 est l'avenir, mais ce n'est pas le présent.


Rod webapp pourrait besoin d'un navigateur compatible HTML5 cependant, car il n'a pas d'impact sur le point multi-plate-forme. Bien sûr, les personnes qui utilisent toujours IE devront installer un autre navigateur, mais ce n'est pas tellement important (sauf dans certains environnements d'entreprise, mais dans ces cas, le flash est souvent hors de la question! Et il y a même une occasion qu'ils ont gagné 't Mind Installation d'un client Incorporer un navigateur WebKit, qui est une solution de dernier recours).


@Shautitieh: Vous pourriez faire cela, mais je ne pense pas que vous comprenez que la plupart des personnes qui utilisent, c'est-à-dire, utilisez-la parce qu'elles doivent (environnement d'entreprise), ou parce qu'elles ne sont pas techniques avertis et ne savent pas ce qu'est un navigateur Web. C'est - et dans ce dernier cas, il est peu probable qu'ils vont installer ce qui leur ressemble à une pièce de logiciel aléatoire, d'utiliser votre application Web. Mais de toute façon, le point est que Flash couvre la plus grande base d'utilisateurs et ses meilleures fonctionnalités d'image-manipulation. Le développement devrait donc être plus rapide une fois que vous avez dépassé la courbe d'apprentissage.


@MusicFreak: Je comprends votre raisonnement, mais tout va à la question suivante: quelle sera ma base d'utilisateurs? i préféreriez cibler HTML5 parce que je pense que cela portera des fruits sur le long terme et qu'il est plus important de cibler les gars de Apple que les pauvres qui sont bloqués avec des navigateurs obsolètes à l'intérieur leur environnement d'entreprise. Celles-ci n'utiliseraient probablement pas la version flash de toute façon, car une société serait disposée à dépenser des dollars pour obtenir un logiciel d'édition d'image plus gros / riche (et s'ils le souhaitaient vraiment, l'option d'intégration d'un navigateur récent est toujours là).


@Shautieh: assez juste. Personnellement, je ne voudrais pas mettre mon argent sur une norme qui ne va pas frapper le courant dominant pendant quelques années, et comme je l'ai dit, je ferais une application dédiée pour les personnes ios. Mais a chacun le sien.


@MusicFreak and Rod: Voici un lien que j'ai lu il y a quelques jours qui peuvent vous intéresser: CDN-0.NFLXIMG.com/us/presentations/htmltvui/oscon-2011/...



1
votes

Ce message a été créé il y a 4 ans et le scénario est donc très différent, je voudrais donc compléter les réponses avec quelque chose de plus à jour.

  • flash n'est plus un bon choix car certains navigateurs le bloquent et que d'autres encouragent ne l'utilisent pas pour de nombreuses raisons. flash n'est pas mobile sympathique.
  • applet Java a plus de restrictions que Flash. Actuellement, il n'est utilisé que lorsque nous n'avons pas d'autre choix.
  • Silverlight présente les problèmes similaires de Flash.
  • JavaScript Ecosystème évolue et nous avons maintenant de nombreux cadres pour l'utiliser sur le côté client, le côté serveur et le mobile. L'adoption et le soutien javascript sont plus mûrs maintenant. Par conséquent, Maintenant, je pense que JavaScript est le meilleur choix de loin.

    Pour les développeurs à la recherche d'un traitement de l'image côté client, je vous recommande l'exemple de base suivant:
    Traitement d'une image avant de télécharger sur un serveur

    Vous pouvez utiliser ce même cadre pour développer des applications mobiles:
    Mise en route avec le traitement de l'image dans des appareils mobiles à l'aide de JavaScript, Ionic et Marvinj

    Au-dessous d'une référence de cadres JavaScript pour manipuler des images:


0 commentaires