Hi everyone! Thanks for the comments, I don't create a repository yet because, 
in this first version, I just wanted to try if it was possible, so only create 
a Form subclass and add three methods.

Form subclass: #ImageForm
instanceVariableNames: 'mode'
classVariableNames: ''
package: ‘SmallImage'

——>

+ aImage
"add two image and return a new ImageForm"
|aImageResult|

aImageResult := self deepCopy.

0 to: self width do:[:x| 0 to: self height
do:[:y|
|aPoint aColorA aColorB|
aPoint := (Point x: x y: y).
aColorA := aImageResult colorAt: aPoint.
aColorB := aImage colorAt: aPoint.
aImageResult colorAt: aPoint put: aColorA + aColorB. ]].
^ aImageResult

—->

show: anTitle
"Show a image in a window, scale the image to 500"
|im|
im := (ImageMorph withForm: (self scaledIntoFormOfSize:500) ).
im withSnapshotBorder.
im borderWidth: 5.
im color: (Color gray).
im openInWindowLabeled: (anTitle,' | mode: ', self mode asLowercase, '| ', self 
shape).

-—>


The first problem I found was the class Form return 'Form new' and not 'self 
class new' so I had to create two class method (in ImageForm):

newFrom: aForm mode: aMode
"create an ImageForm from to a Form object."
| aImage|

 aImage := self new.
 aImage copyFrom: aForm.
 aImage mode: aMode.
 ^ aImage.

—>

open: aFileName
“Open a image.”
| aImage aForm|
 aForm := ImageReadWriter formFromFileNamed: aFileName.
 aImage := self newFrom: aForm mode: ‘ARGB’.
 ^ aImage.

—>


I think that the methods (+ and show) should be directly in the class Form but 
I didn't want to change the original. If you think it's okay, I can continue 
working and this week upload to github with their respective tests.

P.S. sorry for my limited English.




Best Regards Pablo.
El 25 de ene. de 2020 12:10 -0300, Stéphane Ducasse 
<stephane.duca...@inria.fr>, escribió:
> what I always find strange is that people do not invest in tests for domains 
> that are super nice to test….
>
> S.
>
> > On 25 Jan 2020, at 16:04, Serge Stinckwich <serge.stinckw...@gmail.com> 
> > wrote:
> >
> > You may have a look to Cuis library : 
> > https://github.com/Cuis-Smalltalk/Numerics
> > There is an image analysis package.
> > We have some plan in PolyMath to port it: 
> > https://github.com/PolyMathOrg/PolyMath/issues/158
> >
> > Best,
> >
> > > On Fri, Jan 24, 2020 at 11:20 PM Pablo Navarro <pablo...@gmail.com> wrote:
> > > > > Hi everyone!
> > > > >
> > > > > I’m searching for one library for image processing in Pharo. I 
> > > > > couldn't find anything (only wrappers) so I tried programming one for 
> > > > > basic operations (sum,
> > > > > subtraction) with images using class “Form”.
> > > > >
> > > > > What do you think about this?
> > > > >
> > > > >
> > > > > For providing a context, I'm studying a PhD. in image processing, but 
> > > > > all of the operations that I do, do it in Python. I try using Pharo 
> > > > > for more fun :D.
> > > > >
> > > > > Best Regards Pablo.
> >
> >
> > --
> > Serge Stinckwic
> > ​h
> >
> > Int. Research Unit
> >  on Modelling/Simulation of Complex Systems (UMMISCO)
> > ​Sorbonne University
> >  (SU)
> > French National Research Institute for Sustainable Development (IRD)
> > U
> > ​niversity of Yaoundé I​, Cameroon
> > "Programs must be written for people to read, and only incidentally for 
> > machines to execute."
> > https://twitter.com/SergeStinckwich
> >
>
> --------------------------------------------
> Stéphane Ducasse
> http://stephane.ducasse.free.fr / http://www.pharo.org
> 03 59 35 87 52
> Assistant: Julie Jonas
> FAX 03 59 57 78 50
> TEL 03 59 35 86 16
> S. Ducasse - Inria
> 40, avenue Halley,
> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
> Villeneuve d'Ascq 59650
> France
>

Reply via email to