Hi Pablo, I did some experiment with the Form class some time ago, maybe you can borrow something from here: https://80738163270632.blogspot.com/2018/10/pharo-script-of-day-proto-proto-image.html
Hernán El sáb., 25 ene. 2020 a las 13:42, Pablo Navarro (<pablo...@gmail.com>) escribió: > 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 > >