Bonjour. Je charge une image dans une ImageMorph: im:=ImageMorph new. im image: (Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))). im openInWorld. Mais quelle(s) méthode(s) utiliser pour la redimensionner? J'ai remarqué d'ailleurs qu'on ne peut pas la redimensionner à l'aide du Halo. J'ai reussi à modifier la taille avec : Form>> scaledToSize: newExtent mais la taille obtenue n'est pas celle passée en paramètre. Merci. Jérôme _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
[hidden email] a écrit :
> > Bonjour. > Je charge une image dans une ImageMorph: > im:=ImageMorph new. > im image: > (Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))). > im openInWorld. > Mais quelle(s) méthode(s) utiliser pour la redimensionner? > J'ai remarqué d'ailleurs qu'on ne peut pas la redimensionner à l'aide > du Halo. > J'ai reussi à modifier la taille avec : > Form>> scaledToSize: newExtent > mais la taille obtenue n'est pas celle passée en paramètre. > Merci. > Jérôme > il y a surement mieux, mais voilà une première approche : | imgf | imgf := ImageMorph new. imgf image: (imgf image magnifyBy: 2). imgf openInWorld. magnifyBy: 2 pour doubler la taille, 0.5 pour diminuer de moitié, etc. Ce qui donne avec l'exemple d'origine : im:=ImageMorph new. im image: ((Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))) magnifyBy: 2). im openInWorld. Cordialement, -- Frédéric _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
A mettre dans la FAQ ?
Hilaire Frédéric Ferrère a écrit : > [hidden email] a écrit : >> >> Bonjour. >> Je charge une image dans une ImageMorph: >> im:=ImageMorph new. >> im image: >> (Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))). >> im openInWorld. >> Mais quelle(s) méthode(s) utiliser pour la redimensionner? >> J'ai remarqué d'ailleurs qu'on ne peut pas la redimensionner à l'aide >> du Halo. >> J'ai reussi à modifier la taille avec : >> Form>> scaledToSize: newExtent >> mais la taille obtenue n'est pas celle passée en paramètre. >> Merci. >> Jérôme >> > Bonjour, > > il y a surement mieux, mais voilà une première approche : > | imgf | > imgf := ImageMorph new. > imgf image: (imgf image magnifyBy: 2). > imgf openInWorld. > > magnifyBy: 2 pour doubler la taille, 0.5 pour diminuer de moitié, etc. > > Ce qui donne avec l'exemple d'origine : > im:=ImageMorph new. > im image: > ((Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))) > magnifyBy: 2). > im openInWorld. > > Cordialement, > > -- > Frédéric _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Frédéric Ferrère-2
Bonjour et merci pour vos réponses.
Cependant, cette méthode redimensionne bien l'image mais sans dissocier la longueur de la largeur. Je souhaiterais modifier longueur et largeur indépendamment. Merci. Jérôme. Frédéric Ferrère a écrit: > [hidden email] a écrit : >> >> Bonjour. >> Je charge une image dans une ImageMorph: >> im:=ImageMorph new. >> im image: >> (Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))). >> im openInWorld. >> Mais quelle(s) méthode(s) utiliser pour la redimensionner? >> J'ai remarqué d'ailleurs qu'on ne peut pas la redimensionner à l'aide du >> Halo. >> J'ai reussi à modifier la taille avec : >> Form>> scaledToSize: newExtent >> mais la taille obtenue n'est pas celle passée en paramètre. >> Merci. >> Jérôme >> > Bonjour, > > il y a surement mieux, mais voilà une première approche : > | imgf | > imgf := ImageMorph new. > imgf image: (imgf image magnifyBy: 2). > imgf openInWorld. > > magnifyBy: 2 pour doubler la taille, 0.5 pour diminuer de moitié, etc. > > Ce qui donne avec l'exemple d'origine : > im:=ImageMorph new. > im image: > ((Form fromBinaryStream: ((HTTPClient httpGet: 'http://.....png'))) > magnifyBy: 2). > im openInWorld. > > Cordialement, > > -- > Frédéric > _______________________________________________ > Squeak-fr mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
[hidden email] a écrit :
> Bonjour et merci pour vos réponses. > Cependant, cette méthode redimensionne bien l'image mais sans dissocier > la longueur de la largeur. Je souhaiterais modifier longueur et largeur > indépendamment. > Merci. > Jérôme. > en regardant le code de la méthode magnify:by:smoothing: de la classe Form et en l'adaptant un petit peu on arrive à quelque chose qui semble fonctionner. Dans l'exemple ci dessous, ImageMorph contient une image de 127x57. Je change la dimension de l'image en rajoutant 800 sur la lageur et 10 sur la hauteur, ce qui donne une image de 927x67. |img newForm| img := ImageMorph new. newForm := Form extent: (img image extent + (800@10)) depth:(img image depth). (WarpBlt current toForm: newForm) sourceForm: (img image); colorMap: (img image colormapIfNeededFor: newForm); cellSize: 1; combinationRule: 2; copyQuad: img image boundingBox innerCorners toRect: newForm boundingBox. img image: newForm. img openInWorld Par contre il y a un mystère : le code fonctionne, mais j'ai du modifier la valeur de combinationRule, qui dans le code de la fonction magnify:by:smoothing: est 3. Cette valeur (3) n'apparait d'ailleur pas dans la documentation de la classe BitBlt concernant les valeurs de combinationRule. Et la valeur 2 que j'ai choisi est un pur hasard ... Je ne serais pas contre une bonne explication des classes WarpBlt et BitBlt :) Cordialement, -- Frédéric Ferrère _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour
ImageMorph semble très restrictive. Utilise SketchMorph im:=SketchMorph new. im form: (Form fromBinaryStream: ((HTTPClient httpGet: 'www.k2r-riddim.net/public/images/avion.png'))). im openInWorld. im height: 150 im width: 200 Pour cette classe, le Halo jaune marche , ce qui permet à L'utilisateur de redimensionner lui-même l'image. C'est la classe utilisée par Squeak si l'on jette une image .png .jpeg ou .gif dans Squeak. Amitiés -------- Message d'origine-------- De: [hidden email] de la part de FERRERE Frédéric Date: lun. 02/07/2007 17:28 À: Squeak in french / Squeak en français Objet : Re: [Squeak-fr] redimensionner une image [hidden email] a écrit : > Bonjour et merci pour vos réponses. > Cependant, cette méthode redimensionne bien l'image mais sans dissocier > la longueur de la largeur. Je souhaiterais modifier longueur et largeur > indépendamment. > Merci. > Jérôme. > en regardant le code de la méthode magnify:by:smoothing: de la classe Form et en l'adaptant un petit peu on arrive à quelque chose qui semble fonctionner. Dans l'exemple ci dessous, ImageMorph contient une image de 127x57. Je change la dimension de l'image en rajoutant 800 sur la lageur et 10 sur la hauteur, ce qui donne une image de 927x67. |img newForm| img := ImageMorph new. newForm := Form extent: (img image extent + (800@10)) depth:(img image depth). (WarpBlt current toForm: newForm) sourceForm: (img image); colorMap: (img image colormapIfNeededFor: newForm); cellSize: 1; combinationRule: 2; copyQuad: img image boundingBox innerCorners toRect: newForm boundingBox. img image: newForm. img openInWorld Par contre il y a un mystère : le code fonctionne, mais j'ai du modifier la valeur de combinationRule, qui dans le code de la fonction magnify:by:smoothing: est 3. Cette valeur (3) n'apparait d'ailleur pas dans la documentation de la classe BitBlt concernant les valeurs de combinationRule. Et la valeur 2 que j'ai choisi est un pur hasard ... Je ne serais pas contre une bonne explication des classes WarpBlt et BitBlt :) Cordialement, -- Frédéric Ferrère _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr winmail.dat (5K) Download Attachment |
RE Bonjour
Juste pour faire profiter les utilisateurs de E-toys de cette recherche de code voici comment faire un script permettant de charger une image depuis internet. En cliquant sur la palette , faire un dessin quelconque pour obtenir un SketchMorph. Ouvrir le visualiseur de script de ce dessin (halo bleu) et tirer la brique script vide (empty script) Tout en bas du menu du script choisir: ajouter un paramètre cliquer sur le triangle noir pour changer le type du paramètre, choisir texte Cliquer sur le carré pour avoir la version texte du script (Ce bouton n'existe plus dans l'image OLPC, utiliser le menu et choisir :montrer la code smalltalk.) Remplacer le texte ^self par le code suivant. self setGraphic: (ImageReadWriter formFromStream: (HTTPClient httpGet: t1)) On obtient une brique dans la catégorie script avec un paramètre abc Remplacer le texte abc par l'URL voulu Appuyer sur le point d'exclammation pour exécuter le code et obtenir l'image. Amitiés -------- Message d'origine-------- De: [hidden email] de la part de Dreyfuss Pierre-André (EDU) Date: mar. 03/07/2007 10:31 À: Squeak in french / Squeak en français Objet : RE : [Squeak-fr] redimensionner une image Bonjour ImageMorph semble très restrictive. Utilise SketchMorph im:=SketchMorph new. im form: (Form fromBinaryStream: ((HTTPClient httpGet: 'www.k2r-riddim.net/public/images/avion.png'))). im openInWorld. im height: 150 im width: 200 Pour cette classe, le Halo jaune marche , ce qui permet à L'utilisateur de redimensionner lui-même l'image. C'est la classe utilisée par Squeak si l'on jette une image .png .jpeg ou .gif dans Squeak. Amitiés -------- Message d'origine-------- De: [hidden email] de la part de FERRERE Frédéric Date: lun. 02/07/2007 17:28 À: Squeak in french / Squeak en français Objet : Re: [Squeak-fr] redimensionner une image [hidden email] a écrit : > Bonjour et merci pour vos réponses. > Cependant, cette méthode redimensionne bien l'image mais sans dissocier > la longueur de la largeur. Je souhaiterais modifier longueur et largeur > indépendamment. > Merci. > Jérôme. > en regardant le code de la méthode magnify:by:smoothing: de la classe Form et en l'adaptant un petit peu on arrive à quelque chose qui semble fonctionner. Dans l'exemple ci dessous, ImageMorph contient une image de 127x57. Je change la dimension de l'image en rajoutant 800 sur la lageur et 10 sur la hauteur, ce qui donne une image de 927x67. |img newForm| img := ImageMorph new. newForm := Form extent: (img image extent + (800@10)) depth:(img image depth). (WarpBlt current toForm: newForm) sourceForm: (img image); colorMap: (img image colormapIfNeededFor: newForm); cellSize: 1; combinationRule: 2; copyQuad: img image boundingBox innerCorners toRect: newForm boundingBox. img image: newForm. img openInWorld Par contre il y a un mystère : le code fonctionne, mais j'ai du modifier la valeur de combinationRule, qui dans le code de la fonction magnify:by:smoothing: est 3. Cette valeur (3) n'apparait d'ailleur pas dans la documentation de la classe BitBlt concernant les valeurs de combinationRule. Et la valeur 2 que j'ai choisi est un pur hasard ... Je ne serais pas contre une bonne explication des classes WarpBlt et BitBlt :) Cordialement, -- Frédéric Ferrère _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr winmail.dat (6K) Download Attachment |
In reply to this post by Dreyfuss Pierre-André (EDUM)
Dreyfuss Pierre-André (EDU) a écrit :
> Bonjour > > ImageMorph semble très restrictive. > Utilise SketchMorph > > im:=SketchMorph new. > im form: > (Form fromBinaryStream: ((HTTPClient httpGet: 'www.k2r-riddim.net/public/images/avion.png'))). > im openInWorld. > > im height: 150 > im width: 200 > > Pour cette classe, le Halo jaune marche , ce qui permet à L'utilisateur de redimensionner lui-même l'image. > C'est la classe utilisée par Squeak si l'on jette une image .png .jpeg ou .gif dans Squeak. > > Amitiés > Selon ce qui est noté sur le site suivant : http://wiki.squeak.org/squeak/1372 SketchMorph serait peu à peu abandonné au profit de ImageMorph et TransformMorph. Quand est il exactement ? Peut-on continuer à utiliser SketchMorph ? Cordialement, -- Frédéric Ferrère _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Free forum by Nabble | Edit this page |