Hi all,
"Smagick" is a small high level interface to control "Image Magick" from within a Smalltalk environment, eg. Squeak. The purpose of this package is to provide high performance image manipulations without the need to know all the low level details of image processing. A possible use case could be a web application providing image up/ download or even manipulation (for example thumbnailing, resizing, recompression) to multiple users ... What can "Smagick" do right now: - it can read all internal image properties (examples: width, height, colorspace, encoder, quality, bounding-box, ......) - it can read most exif information (examples: camera software, date, orientation, shutter-speed, .....) - it can convert any image format* to any other format* - it can apply various image transformations concerning quality, colors, effects, orientation, size, metas (examples: resize, charcoal, emboss, colorspace, exif-auto-orientation, .....) - it can compose [work in progress] multiple images (examples: multiply, difference, add, ......) * depends on your "Image Magick" installation I attached some more information about getting, installing and using "Smagick" at the bottom of this mail ... I will add more features and try to make the interface more simple and robust ... in the meantime I'm looking forward to some feedback Cheers, Stef -------------------------------------------- GETTING "Smagick" "Smagick" depends on - OSProcess (+ UnixVM) You can get "Smagick" from - "http://www.squeaksource.com/SqueakAddOns" It will load all dependencies (except OSProcess) -------------------------------------------- INSTALLING "Smagick" If you have "OmniBrowser" installed, execute the following after loading "Smagick" SmagickEnvironment setup This will ask you for the installation path of "Image Magick", providing an example of how this could look like ;). Furthermore it will check whether "Image Magick" really exists in the given location. If you don't have Omnibrowser installed, use SmagickEnvironment setupSilent: 'your installation path' This will set the path but not perform a check. -------------------------------------------- SOME SIMPLE EXAMPLES OF USING "Smagick" " this will apply some transformations on aFile.JPG and then save it to anotherFile.PNG " " NOTICE: the order of transformations is relevant !!! " (SmagickImage on: 'aFile.jpg') convertTo: 'anotherFile.png' with: [ :image | image sharpen: 20; negate; autoOriented; polaroid; colors: 256; quality: 20 ] " this will negate the cyan color channel only and then save aFile.JPG to anotherFile.PNG " (SmagickImage on: 'aFile.jpg') convertTo: 'anotherFile.png' with: [ :image | image image with: SmagickConstants cyan do: [ :channel | channel negate ] ] " get the compression ratio of aFile.JPG " (SmagickImage on: 'aFile.jpg') compressionQuality inspect |
Hi Stefan,
your project sounds really cool. Thank you. Can you publish a Universe Package for it please? http://wiki.squeak.org/squeak/5899 2007/8/5, [hidden email] <[hidden email]>: > Hi all, > > > "Smagick" is a small high level interface to control "Image Magick" > from within a Smalltalk environment, eg. Squeak. The purpose of this > package is to provide high performance image manipulations without > the need to know all the low level details of image processing. > > A possible use case could be a web application providing image up/ > download or even manipulation (for example thumbnailing, resizing, > recompression) to multiple users ... > > > What can "Smagick" do right now: > - it can read all internal image properties (examples: width, > height, colorspace, encoder, quality, bounding-box, ......) > - it can read most exif information (examples: camera software, > date, orientation, shutter-speed, .....) > - it can convert any image format* to any other format* > - it can apply various image transformations concerning quality, > colors, effects, orientation, size, metas (examples: resize, > charcoal, emboss, colorspace, exif-auto-orientation, .....) > - it can compose [work in progress] multiple images (examples: > multiply, difference, add, ......) > > * depends on your "Image Magick" installation > > > I attached some more information about getting, installing and using > "Smagick" at the bottom of this mail ... > > > I will add more features and try to make the interface more simple > and robust ... in the meantime I'm looking forward to some feedback > > > Cheers, > Stef > > > -------------------------------------------- > > > GETTING "Smagick" > > "Smagick" depends on > - OSProcess (+ UnixVM) > > You can get "Smagick" from > - "http://www.squeaksource.com/SqueakAddOns" > It will load all dependencies (except OSProcess) > > > -------------------------------------------- > > INSTALLING "Smagick" > > If you have "OmniBrowser" installed, execute the following after > loading "Smagick" > SmagickEnvironment setup > This will ask you for the installation path of "Image Magick", > providing an example of how this could look like ;). Furthermore it > will check whether "Image Magick" really exists in the given location. > > If you don't have Omnibrowser installed, use > SmagickEnvironment setupSilent: 'your installation path' > This will set the path but not perform a check. > > > -------------------------------------------- > > SOME SIMPLE EXAMPLES OF USING "Smagick" > > " this will apply some transformations on aFile.JPG and then save it > to anotherFile.PNG " > " NOTICE: the order of transformations is relevant !!! " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > sharpen: 20; > negate; > autoOriented; > polaroid; > colors: 256; > quality: 20 ] > > > " this will negate the cyan color channel only and then save > aFile.JPG to anotherFile.PNG " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > image > with: SmagickConstants cyan > do: [ :channel | > channel negate ] ] > > " get the compression ratio of aFile.JPG " > (SmagickImage on: 'aFile.jpg') > compressionQuality inspect > > -- Damien Cassou |
In reply to this post by stefan_reichhart@students.unibe.ch
Excellent! I will try this as soon as possible. I was looking for such a
tool. As a Seaside user, I often need to add PHP in order to transform text in images (with convenient fonts and the GD package); now I can do everything in Squeak. Cheers, -- Martial [hidden email] a écrit : | Hi all, | | | "Smagick" is a small high level interface to control "Image Magick" | from within a Smalltalk environment, eg. Squeak. The purpose of this | package is to provide high performance image manipulations without | the need to know all the low level details of image processing. | | A possible use case could be a web application providing image up/ | download or even manipulation (for example thumbnailing, resizing, | recompression) to multiple users ... | | | What can "Smagick" do right now: | - it can read all internal image properties (examples: width, | height, colorspace, encoder, quality, bounding-box, ......) | - it can read most exif information (examples: camera software, | date, orientation, shutter-speed, .....) | - it can convert any image format* to any other format* | - it can apply various image transformations concerning quality, | colors, effects, orientation, size, metas (examples: resize, | charcoal, emboss, colorspace, exif-auto-orientation, .....) | - it can compose [work in progress] multiple images (examples: | multiply, difference, add, ......) | | * depends on your "Image Magick" installation | | | I attached some more information about getting, installing and using | "Smagick" at the bottom of this mail ... | | | I will add more features and try to make the interface more simple | and robust ... in the meantime I'm looking forward to some feedback | | | Cheers, | Stef | | | -------------------------------------------- | | | GETTING "Smagick" | | "Smagick" depends on | - OSProcess (+ UnixVM) | | You can get "Smagick" from | - "http://www.squeaksource.com/SqueakAddOns" | It will load all dependencies (except OSProcess) | | | -------------------------------------------- | | INSTALLING "Smagick" | | If you have "OmniBrowser" installed, execute the following after | loading "Smagick" | SmagickEnvironment setup | This will ask you for the installation path of "Image Magick", | providing an example of how this could look like ;). Furthermore it | will check whether "Image Magick" really exists in the given location. | | If you don't have Omnibrowser installed, use | SmagickEnvironment setupSilent: 'your installation path' | This will set the path but not perform a check. | | | -------------------------------------------- | | SOME SIMPLE EXAMPLES OF USING "Smagick" | | " this will apply some transformations on aFile.JPG and then save it | to anotherFile.PNG " | " NOTICE: the order of transformations is relevant !!! " | (SmagickImage on: 'aFile.jpg') | convertTo: 'anotherFile.png' | with: [ :image | image | sharpen: 20; | negate; | autoOriented; | polaroid; | colors: 256; | quality: 20 ] | | | " this will negate the cyan color channel only and then save | aFile.JPG to anotherFile.PNG " | (SmagickImage on: 'aFile.jpg') | convertTo: 'anotherFile.png' | with: [ :image | image | image | with: SmagickConstants cyan | do: [ :channel | | channel negate ] ] | | " get the compression ratio of aFile.JPG " | (SmagickImage on: 'aFile.jpg') | compressionQuality inspect | |
In reply to this post by stefan_reichhart@students.unibe.ch
Wow, it is exact the tool I was looking for. I'm struggling
a bit with the supported formats in squeak. I did a lot of imagemagick in the past mostly via shell scripts or perl. I'll test this very soon. The only caveat is that imagemagick needs a lot memory to operate. thanks for this, Norbert On Sun, 2007-08-05 at 13:42 +0200, [hidden email] wrote: > Hi all, > > > "Smagick" is a small high level interface to control "Image Magick" > from within a Smalltalk environment, eg. Squeak. The purpose of this > package is to provide high performance image manipulations without > the need to know all the low level details of image processing. > > A possible use case could be a web application providing image up/ > download or even manipulation (for example thumbnailing, resizing, > recompression) to multiple users ... > > > What can "Smagick" do right now: > - it can read all internal image properties (examples: width, > height, colorspace, encoder, quality, bounding-box, ......) > - it can read most exif information (examples: camera software, > date, orientation, shutter-speed, .....) > - it can convert any image format* to any other format* > - it can apply various image transformations concerning quality, > colors, effects, orientation, size, metas (examples: resize, > charcoal, emboss, colorspace, exif-auto-orientation, .....) > - it can compose [work in progress] multiple images (examples: > multiply, difference, add, ......) > > * depends on your "Image Magick" installation > > > I attached some more information about getting, installing and using > "Smagick" at the bottom of this mail ... > > > I will add more features and try to make the interface more simple > and robust ... in the meantime I'm looking forward to some feedback > > > Cheers, > Stef > > > -------------------------------------------- > > > GETTING "Smagick" > > "Smagick" depends on > - OSProcess (+ UnixVM) > > You can get "Smagick" from > - "http://www.squeaksource.com/SqueakAddOns" > It will load all dependencies (except OSProcess) > > > -------------------------------------------- > > INSTALLING "Smagick" > > If you have "OmniBrowser" installed, execute the following after > loading "Smagick" > SmagickEnvironment setup > This will ask you for the installation path of "Image Magick", > providing an example of how this could look like ;). Furthermore it > will check whether "Image Magick" really exists in the given location. > > If you don't have Omnibrowser installed, use > SmagickEnvironment setupSilent: 'your installation path' > This will set the path but not perform a check. > > > -------------------------------------------- > > SOME SIMPLE EXAMPLES OF USING "Smagick" > > " this will apply some transformations on aFile.JPG and then save it > to anotherFile.PNG " > " NOTICE: the order of transformations is relevant !!! " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > sharpen: 20; > negate; > autoOriented; > polaroid; > colors: 256; > quality: 20 ] > > > " this will negate the cyan color channel only and then save > aFile.JPG to anotherFile.PNG " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > image > with: SmagickConstants cyan > do: [ :channel | > channel negate ] ] > > " get the compression ratio of aFile.JPG " > (SmagickImage on: 'aFile.jpg') > compressionQuality inspect > |
In reply to this post by stefan_reichhart@students.unibe.ch
Awsome news Stefan! In short I'll need to use this features
cheers ! Sebastian Sastre > -----Mensaje original----- > De: [hidden email] > [mailto:[hidden email]] En > nombre de [hidden email] > Enviado el: Domingo, 05 de Agosto de 2007 08:42 > Para: [hidden email]; The > general-purpose Squeak developers list > Asunto: [ANN] Smagick > > Hi all, > > > "Smagick" is a small high level interface to control "Image Magick" > from within a Smalltalk environment, eg. Squeak. The purpose > of this package is to provide high performance image > manipulations without the need to know all the low level > details of image processing. > > A possible use case could be a web application providing > image up/ download or even manipulation (for example > thumbnailing, resizing, > recompression) to multiple users ... > > > What can "Smagick" do right now: > - it can read all internal image properties (examples: > width, height, colorspace, encoder, quality, bounding-box, ......) > - it can read most exif information (examples: camera > software, date, orientation, shutter-speed, .....) > - it can convert any image format* to any other format* > - it can apply various image transformations concerning > quality, colors, effects, orientation, size, metas (examples: > resize, charcoal, emboss, colorspace, exif-auto-orientation, .....) > - it can compose [work in progress] multiple images (examples: > multiply, difference, add, ......) > > * depends on your "Image Magick" installation > > > I attached some more information about getting, installing > and using "Smagick" at the bottom of this mail ... > > > I will add more features and try to make the interface more > simple and robust ... in the meantime I'm looking forward to > some feedback > > > Cheers, > Stef > > > -------------------------------------------- > > > GETTING "Smagick" > > "Smagick" depends on > - OSProcess (+ UnixVM) > > You can get "Smagick" from > - "http://www.squeaksource.com/SqueakAddOns" > It will load all dependencies (except OSProcess) > > > -------------------------------------------- > > INSTALLING "Smagick" > > If you have "OmniBrowser" installed, execute the following > after loading "Smagick" > SmagickEnvironment setup > This will ask you for the installation path of "Image > Magick", providing an example of how this could look like ;). > Furthermore it will check whether "Image Magick" really > exists in the given location. > > If you don't have Omnibrowser installed, use > SmagickEnvironment setupSilent: 'your installation path' > This will set the path but not perform a check. > > > -------------------------------------------- > > SOME SIMPLE EXAMPLES OF USING "Smagick" > > " this will apply some transformations on aFile.JPG and then > save it to anotherFile.PNG " > " NOTICE: the order of transformations is relevant !!! " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > sharpen: 20; > negate; > autoOriented; > polaroid; > colors: 256; > quality: 20 ] > > > " this will negate the cyan color channel only and then save > aFile.JPG to anotherFile.PNG " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > image > with: SmagickConstants cyan > do: [ :channel | > channel negate ] ] > > " get the compression ratio of aFile.JPG " > (SmagickImage on: 'aFile.jpg') > compressionQuality inspect > |
In reply to this post by stefan_reichhart@students.unibe.ch
> "Smagick" is a small high level interface to control "Image Magick"
> from within a Smalltalk environment, eg. Squeak. The purpose of this > package is to provide high performance image manipulations without > the need to know all the low level details of image processing. Neat!! There is a ton of stuff available on our machines outside of Squeak. There are several ways to access such things, and Smagick's approach is to use OSProcess. Can you comment on how the interfacing works? Does Image Magick have a mode that lets you talk to it over a pipe, or does it have a rich set of command-line options that Smagick can use, or what? Also, does anyone have an idea if Smagick works in Windows, possibly with Cygwin? How about OS/X ? Lex |
Hi,
Thanks (to all) for the nice feedbacks ! request by Damien: "Smagick 0.1" is now available as Package Universe ;) interfacing: Right now the "IO" between "Smagick" and "Image Magic" via "OSProcess" is done using "OSProcessIO". That is an intermediate layer that composes the commands for a model (=Smagick) and returns the parsed output (if there is any) and the process of an external application (=Image Magick) back to it. "OSProcessIO" is using a file- pipe for this ... yet very primitive. I know that "Smagick" works well on Unix, Linux and MacOSX - tested and heavily used. I don't know whether it runs on Windows. Maybe someone can try it ? - I don't use Windows anymore ... Cheers, Stef On Aug 7, 2007, at 3:54 PM, Lex Spoon wrote: >> "Smagick" is a small high level interface to control "Image Magick" >> from within a Smalltalk environment, eg. Squeak. The purpose of this >> package is to provide high performance image manipulations without >> the need to know all the low level details of image processing. > > Neat!! > > There is a ton of stuff available on our machines outside of Squeak. > There are several ways to access such things, and Smagick's approach > is to use OSProcess. > > Can you comment on how the interfacing works? Does Image Magick have > a mode that lets you talk to it over a pipe, or does it have a rich > set of command-line options that Smagick can use, or what? > > Also, does anyone have an idea if Smagick works in Windows, possibly > with Cygwin? How about OS/X ? > > > Lex > |
I've tried it on Windows and stepped through the code a bit and it seems that you are assuming that the names of the binaries will be without extensions but on Windows they add .exe to the end. I'll see if I can change that.
]{evin
|
I got a few more dependencies loaded only to get DNU on #waitForCommand: It seems that WindowsProcess needs some more work.
I've tried simplifying and just getting an external process launched ( ExternalWindowsOSProcess command: 'c:/WINDOWS/system32/notepad.exe' ) and even that doesn't work.... Alas it's time for bed. ]{evin
|
In reply to this post by stefan_reichhart@students.unibe.ch
I got a few more dependencies loaded only to get DNU on #waitForCommand: It seems that WindowsProcess needs some more work.
I've tried simplifying and just getting an external process launched ( ExternalWindowsOSProcess command: 'c:/WINDOWS/system32/notepad.exe' ) and even that doesn't work.... Alas it's time for bed. ]{evin
-- ]{evin ])riedger 1473 Brule Ave., Ottawa, ON http://extremedesigners.ca |
In reply to this post by stefan_reichhart@students.unibe.ch
Hi Stefan,
I've open the SqueakAddOns MC http respository at squeaksource but all versions gives the EOCD or cant read the stream. Do you know if that repository is in a normal state? I really want to be able to resize uploaded (to an app) images and store them in a standarized (expected for the application) way and I think Smagik can help for that. cheers, Sebastian Sastre > -----Mensaje original----- > De: [hidden email] > [mailto:[hidden email]] En > nombre de [hidden email] > Enviado el: Domingo, 05 de Agosto de 2007 08:42 > Para: [hidden email]; The > general-purpose Squeak developers list > Asunto: [ANN] Smagick > > Hi all, > > > "Smagick" is a small high level interface to control "Image Magick" > from within a Smalltalk environment, eg. Squeak. The purpose > of this package is to provide high performance image > manipulations without the need to know all the low level > details of image processing. > > A possible use case could be a web application providing > image up/ download or even manipulation (for example > thumbnailing, resizing, > recompression) to multiple users ... > > > What can "Smagick" do right now: > - it can read all internal image properties (examples: > width, height, colorspace, encoder, quality, bounding-box, ......) > - it can read most exif information (examples: camera > software, date, orientation, shutter-speed, .....) > - it can convert any image format* to any other format* > - it can apply various image transformations concerning > quality, colors, effects, orientation, size, metas (examples: > resize, charcoal, emboss, colorspace, exif-auto-orientation, .....) > - it can compose [work in progress] multiple images (examples: > multiply, difference, add, ......) > > * depends on your "Image Magick" installation > > > I attached some more information about getting, installing > and using "Smagick" at the bottom of this mail ... > > > I will add more features and try to make the interface more > simple and robust ... in the meantime I'm looking forward to > some feedback > > > Cheers, > Stef > > > -------------------------------------------- > > > GETTING "Smagick" > > "Smagick" depends on > - OSProcess (+ UnixVM) > > You can get "Smagick" from > - "http://www.squeaksource.com/SqueakAddOns" > It will load all dependencies (except OSProcess) > > > -------------------------------------------- > > INSTALLING "Smagick" > > If you have "OmniBrowser" installed, execute the following > after loading "Smagick" > SmagickEnvironment setup > This will ask you for the installation path of "Image > Magick", providing an example of how this could look like ;). > Furthermore it will check whether "Image Magick" really > exists in the given location. > > If you don't have Omnibrowser installed, use > SmagickEnvironment setupSilent: 'your installation path' > This will set the path but not perform a check. > > > -------------------------------------------- > > SOME SIMPLE EXAMPLES OF USING "Smagick" > > " this will apply some transformations on aFile.JPG and then > save it to anotherFile.PNG " > " NOTICE: the order of transformations is relevant !!! " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > sharpen: 20; > negate; > autoOriented; > polaroid; > colors: 256; > quality: 20 ] > > > " this will negate the cyan color channel only and then save > aFile.JPG to anotherFile.PNG " > (SmagickImage on: 'aFile.jpg') > convertTo: 'anotherFile.png' > with: [ :image | image > image > with: SmagickConstants cyan > do: [ :channel | > channel negate ] ] > > " get the compression ratio of aFile.JPG " > (SmagickImage on: 'aFile.jpg') > compressionQuality inspect > |
Free forum by Nabble | Edit this page |