iPocket Draw
Eric P.
Membre
Bonjour,
Je viens de soumettre une pré-version d'une nouvelle application sur AppStore : iPocket Draw http://www.adx-online.com/prog/ipocketdraw/ipocketdraw.html.
Je pense que cela va être le 1er programme de dessin vectoriel sur l'iPhone et iPod touch.
Actuellement ce n'est qu'une pré-version mais qui permet déjà de dessiner, de sélectionner les objets, de les modifier.
Par contre, il manque :
- l'enregistrement des fichiers;
- le transfert des fichiers vers un ordi.;
Donc si vous avez des info. sur ces sujets, je suis intéressé.
Merci
Eric
Je viens de soumettre une pré-version d'une nouvelle application sur AppStore : iPocket Draw http://www.adx-online.com/prog/ipocketdraw/ipocketdraw.html.
Je pense que cela va être le 1er programme de dessin vectoriel sur l'iPhone et iPod touch.
Actuellement ce n'est qu'une pré-version mais qui permet déjà de dessiner, de sélectionner les objets, de les modifier.
Par contre, il manque :
- l'enregistrement des fichiers;
- le transfert des fichiers vers un ordi.;
Donc si vous avez des info. sur ces sujets, je suis intéressé.
Merci
Eric
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sinon beau boulot quand même, juste palier ce "problème" et ce sera parfait
En fait ça dépend du type d'objet :
- pour une ligne, un rectangle ou une ellipse par exemple, 2 points suffisent pour les définir géométriquement;
- pour un polygone, il faut les coordonnées de tous les sommets;
etc...
Bien sûr, il faut en plus les attributs de dessin : type de ligne, épaisseur, couleur du trait du fond...
Un même dessin prend moins de place en vectoriel.
Outre la possibilité de zoomer, tous les objets sont connus individuellement et donc sélectionnables et modifiables (géométrie et attributs).
Voilà
Eric
Là où le dessin bitmap (celui que tu appelles "normal") décrit chaque pixel un par un, en lui associant une couleur (donc la taille de l'image bitmap = largeur*hauteur*nombre d'octets nécessaires pour indiquer la couleur d'un pixel, en gros), le dessin vectoriel décrit que là y'a un cercle, là y'a une ligne, là y'a une courbe de bézier qui va de là à la avec telle courbure...
D'ailleurs quand tu utilises les NSBezierPath (ou CGPath en CoreGraphics pur et en iPhone), tu fais du dessin vectoriel avec Cocoa.
Bien sûr le dessin vectoriel est adapté par exemple pour les dessins de diagrammes (où tu décris un rectangle, une ligne reliant ce rectangle à un autre, un cercle à tel endroit de tel rayon...), pas pour dessiner la Joconde ou décrire une photo prise par ton appareil photo !!
.pdf, .eps, .ps, .svg -> vectoriel
.tiff, .png, .jpg, .gif -> bitmap
Et Wikipedia is your friend
http://fr.wikipedia.org/wiki/Image_vectorielle
http://fr.wikipedia.org/wiki/Image_matricielle
Il faut savoir que tout le système graphique de Mac OS X (quartz) est basé sur du vectoriel, ce qui permet facilement de gérer les effets, re-dimensionnements etc.
Et quand on dessine sur une NSView, tout est vectoriel (le vectoriel pouvant lui-même intégrer des images bitmap, mais ça nuit à son redimensionnement).
Mais il me semblait avoir lu un moment je ne sais plus où qu'ils travaillaient sur un format spécifique... je ne retrouve pas l'info.
ça y est après 8 jours d'attente la première version d'iPocket Draw est disponible sur l'Appstore.
Et la version suivante est presque prête avec :
L'enregistrement des fichiers;
Le transfert par mail au format RealCADD, une chance j'avais choisi un format texte d'où la possibilité d'envoyer un fichier dans le corps du mail;
Bon week-end
Eric
Enfin, après une longue attente, la version 1.0 de iPocket Draw est disponible sur l'App Store.
iPocket Draw : http://www.adx-online.com/prog/ipocketdraw/ipocketdraw.html
La version Lite, gratuite, est en cours de validation (que c'est long...).
A la différence de la version complète, elle ne permet pas d'enregistrer plusieurs fichiers, ni l'envoi par mail.
Encore merci pour votre aide.
Mais ne craignez rien, je vous solliciterais à nouveau.
Eric
Voilà , iPocket Draw Lite a été validé par Apple après un rejet.
Le lien vers iTunes : http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=315887414&mt=8&uo=6
Vos commentaires sont les bienvenus, ici ou sur iTunes.
Eric
Les nouvelles versions de iPocket Draw et iPocket Draw Lite viennent d'être validées.
Au programme :
- correction de quelques bugs dont un empêchant le lancement dans un cas particulier;
- ajout d'un outil rectangle arrondi;
- décomposition de l'outil ligne libre en 2 outils;
- nouvelle icône;
- augmentation de l'épaisseur maxi des traits;
- augmentation de la taille maxi. des textes;
- amélioration du fonctionnement du zoom et du déplacement du dessin;
- enregistrement des dessins dans l'album photo (version complète seulement);
iPocket Draw sur iTunes : http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312036802&mt=8
Muqaddar, j'ai repris le fil...
Une nouvelle version, 1.07, d'iPocket Draw est disponible pour iPhone, iPod Touch et ... iPad.
La validation de cette version "universelle" a été un peu compliquée mais ça y est.
J'ai maintenant hâte de le voir tourner sur un vrai iPad.
La première chose que j'ai remarqué c'est la barre de statut opaque, en haut de l'écran. Tu devrais la rendre partiellement transparente et afficher le dessin sur la totalité de l'écran. C'est plus agréable à regarder qu'un rectangle gris opaque de 20 pixels points de haut.
A titre d'exemple, l'application Photo d'iOS 5 utilise une barre transparente :
Il faut sélectionner un nom, puis presser sur le bouton "OK" en haut de l'écran. J'ai toujours trouvé anti-ergonomique les validations en haut de l'écran. La gestuelle "sélection", "déplacement du doigt/main vers le haut", "touch sur un bouton" est trop lourde, surtout le déplacement du doigt. Pourquoi ne pas charger un fichier avec un double-touch sur son nom ?
Tu peux aussi afficher des informations sur les fichiers après un simple touch, la date de création et de dernière utilisation par exemple.
Et ajouter la possibilité d'afficher la liste des fichiers utilisés récemment, comme sous Xcode. C'est très pratique.
Mais cela ne fonctionnait pas bien donc j'ai abandonné (provisoirement).
Il faut que je réessaie effectivement avec en plus une barre transparente, cela serait encore mieux.
Pour le système de choix de fichier, cela est nécessaire car tu peux déclencher d'autres actions depuis cet écran :
- imprimer;
- envoyer un fichier par mail;
- renommer les fichiers, les dupliquer, les effacer;
et toutes ces actions se font sur le fichier sélectionné.
Simple Touch => sélection
Double Touch => chargement immédiat du fichier
Si je devais faire la même chose, j'utiliserais une UIScrollView afin d'avoir un scrolling fluide. L'idée est de pré-dessiner l'image dans un tampon graphique en mémoire et de laisser iOS gérer lui-même le scrolling. Cela évite d'avoir à appeler trop souvent le moteur de dessin. UIScrollView "fabrique" un très beau scrolling fluide à 60 images/s avec gestion de l'accélération inertielle sans que le programmeur touche à quoi que ce soit.
Dans la fameuse présentation sur les Scrollviews à la WWDC 2010, ils avaient l'air de dire qu'il fallait utiliser les CATiledLayer, mais je n'ai pas su si CATiledLayer était utilisée par UIImageView ou par UIScrollView. CATiledLayer utilise un cache sur le disque avec les bitmap rendues à plusieurs résolutions.
Ce que je sais est que UIScrollView utilisée avec UIImageView implémente une telle optimisation.
Pourquoi pas mais je conserverai le bouton OK quand même.
Quel version d'iPhone as-tu ?
Quel fichier as-tu ouvert ?
Sur mon iPhone 4, même avec des gros fichiers, le scrolling est assez fluide mais peu ralentir avec un zoom arrière important.
Le tampon graphique, oui mais il aura une limite et les dessins peuvent être plus grands d'autant plus en cas de zoom avant.
J'ai essayé CATiledLayer : le scrolling est meilleur mais après il faut attendre que ça redessine
Les CAShapeLayer sont limités en nombre de shape (d'après les discussions que j'ai pu lire sur certains forums).
Alors que j'ouvre des dessins de plusieurs dizaines de milliers d'objets !
Arrivé un certain nombre d'objets et une certaine taille de dessin, ça finit par coincer.
Le plus efficace serait de dessiner tes objets vectoriels directement avec OpenGL. Le nouveau framework GLKit d'iOS 5 simplifie grandement son utilisation. Je ne vais pas m'attarder sur la question, le sujet étant encore sous NDA. Vas dans la documentation d'iOS 5 et regarde les vues de type GLView et l'affichage du texte dans une surface OpenGL avec CoreImage. On pourra en parler plus librement à la levée du NDA. Le 12 peut-être, à la sortie public d'iOS 5 ?
Le principe est valable pour les images bitmaps pas trop gourmandes en mémoire. Pour des images plus volumineuses, on peut "simuler" un cache mémoire de grande taille avec un système de tuiles, dessinées au fur et à mesure des besoins.
Au fur et à mesure du déplacement de la fenêtre de visualisation, on affiche/détruit les tuiles, afin de minimiser l'occupation mémoire des bitmaps.
Merci Céroce !