2010-08-13 10 views
7

Nous voulons une application web qui permet à un utilisateur d'éditer des images sur le navigateur et nous essayons de décider quelle technologie utiliser. Nous souhaitons prendre en charge la personnalisation simple des images, comme le redimensionnement, le recadrage, la fusion d'images et les transformations de couleurs de haute qualité, ainsi que l'ajout d'éléments de texte avec différentes polices et couleurs.Implémentation d'un éditeur d'image côté client - quel est le meilleur moyen?

Les options sont:

  1. flash: pas de soucis sur la compatibilité multi-navigateurs; pourrait utiliser la même bibliothèque d'images sur le client et le serveur; pas de support iPhone/iPad.
  2. Java (compilé en javascript avec GWT): besoin de trouver une bonne bibliothèque d'images en Java pur pour pouvoir le compiler en JS.
  3. Plain old javascript + HTML5: peut être un désordre dû à plusieurs navigateurs; peut avoir besoin d'écrire le code d'édition d'image à partir de zéro.

Voici ce que nous est le plus important à/critères de choix:

  • cohérence de l'image: l'image que le client édite le navigateur doit être exactement le même que celui que nous finirons par utiliser sur le backend. Nous pouvons y parvenir en (a) avoir la même bibliothèque sur le client et le serveur pour traiter les images, (b) avoir le client générer l'image et la télécharger sur le serveur, ou (c) utiliser deux bibliothèques de traitement d'images différentes sur le client/serveur et espérons le meilleur en termes de cohérence. L'option (a) semble la meilleure, mais cela 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érons enregistrer une séquence d'opérations à effectuer sur une image brute plutôt 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 le plus de travail possible pour diminuer la charge du serveur. Multiplateforme: Nous aimerions prendre en charge autant de plates-formes que possible sans tout réécrire (grand négatif pour Flash dû aux iPhone/iPads).

Quel chemin recommandez-vous? Y a-t-il une alternative qui nous manque?

Merci pour toute aide!

+2

J'ai l'impression que Flash satisfait la cohérence de l'image, l'évolutivité, la qualité d'image et l'effort de développement multiplateforme moins iOS. En tant qu'individu expert en Objective-C et en tant que Développeur ActionScript, j'ai tendance à voir le monde à travers l'idée de «couvrir tout sauf iOS avec Flash, et d'écrire une application iOS avec elle». – Aaron

+0

Quelle est la date de livraison? A-t-il besoin d'être opérationnel dans les prochains mois? Si oui, rappelez-vous que tout le monde n'utilisera pas un navigateur compatible HTML5. FYI prochain navigateur de Microsoft, IE9 soutiendra HTML5, mais il ne fonctionnera pas sur Windows XP. – Allan

+0

"Aucun support iPhone/iPad" s'applique également à Java. Edit: J'ai réussi à manquer le "compilé en javascript avec GWT" (étrange :). –

Répondre

5

Certainement Flash. Si vous allez avec JavaScript et HTML5, vous dites essentiellement "vissez-vous" à tous les utilisateurs d'IE.Le moteur de rendu de Flash est plus rapide pour ces choses que le navigateur, et la vitesse serait constante dans tous les navigateurs. De plus, Flash possède des librairies de manipulation d'images très puissantes, alors qu'en JavaScript, vous devez les écrire vous-même.

Edit: Parce que je viens de recevoir un downvote sur une réponse âgée de 3 ans, je suis obligé de dire que ce n'est plus vrai, et vous devez utiliser les standards du Web comme <canvas> parce qu'ils sont à peu près omniprésentes ces jours-ci. N'utilisez pas Flash.

+0

Je suis d'accord avec vous. @rod Voir Aviary et Picnik pour des exemples de ce qui est possible pour l'édition d'image avec Flash/ActionScript. –

+0

Merci pour les réponses .. Je suppose qu'un négatif pour Flash est que personne dans notre équipe ne l'a déjà utilisé .. Je suppose que nous devrons apprendre :) Recommanderiez-vous de le faire dans Flex au lieu de en flash simple? Enfin, qu'en est-il de javascript, sans l'utilisation de HTML5? – rod

+0

@rod: Flex est un excellent framework, et je le recommande fortement pour le développement basé sur Flash. C'est assez facile à prendre en main, même si j'avoue n'avoir rien construit de plus puissant qu'un éditeur d'image, alors prenez ça avec un grain de sel. Pour ce qui est de JavaScript uniquement sans HTML5, vos performances vont grandement souffrir par rapport à Flash, en particulier pour les navigateurs bas de gamme (lisez: 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 prennent en charge, et dégrader avec élégance les navigateurs qui ne le font pas. –

2

Nous sommes allés avec 3 parce que les applets Java sont morts et nous n'aimons pas Flash. Le HTML5 est, espérons-le, le futur.
GWT semble être une option intéressante, mais nous ne pouvions pas l'utiliser car le côté serveur est .NET. L'écriture de code d'édition d'image est amusant :)

+3

Je suis triste que "nous n'aimons pas Flash" est ce qu'il est descendu. – Aaron

+0

Quel est le problème de ne pas aimer une technologie? –

+4

rien à redire, mais ne seriez-vous pas d'accord que "ne pas utiliser cela parce que je ne l'aime pas" n'est pas une réponse très utile. – PatrickS

1

Je choisirais JS + HTML5 \ canvas. Si vous êtes juste au début de l'écriture de cette application et qu'il n'y a aucune dépendance à 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?). Le seul monstre effrayant qui détient la révolution est IE, mais je pense que IE9 nous amènera à la nouvelle ère, où nous pouvons faire des applications cross-browser vraiment cool sur le web en utilisant de nouvelles normes :) Donc, vous pouvez commencer maintenant, et 2 -3 mois plus tard IE9 viendra avec un support de toile et tout ce truc 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 :)

+1

Mais jusqu'à ce que IE9 se généralise (ce qui sera un certain temps), vous dites essentiellement "vissez-vous" à tous vos utilisateurs d'IE. –

+1

Les utilisateurs de Windows XP n'auront pas de chance .. c'est une grosse part de marché .. – Allan

+0

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