A GUI for ImageMagick

Sounds like something in need of a graphical front-end. So many projects, so little time …

1 Like

Don’t think a front-end woud be much use for ImageMagick… A GUI to cover all it’s features would be a leetle unwieldy! For the ‘convert’ command, for instance, I counted 167 options (each with its own variant parameters)!

I’m a great believer in GUI/Command-line complementarity. Each has its own advantages, neither to the exclusion of the other. For the stuff you do often, and much in the same way, the GUI is supreme, but the command-line gives a flexibility the GUI can’t. Which doesn’t mean it has to be complex or tiresome. The command I used to reduce colour was simply:

convert tiger.png -colors 16 tiger16.png

Actually, I often combine the two realms – with xicon :slight_smile: A command line I use a lot goes into a xicon script, so that I can just drag and drop its subject on that. And with something like Gadgeteer, you can even provide for a few variable parameters. But not 167 of them!

1 Like

I’ve had a look and you’re right, a single GUI to cover all possible options would be a monster. But you could look at it as the basis for a number of small GUI applets. A resizing utilitity using sane defaults and just the most necessary options. Another one that just flips, or that just rotates the image. An animated gif creator. And so on. Exactly the sort of thing yab is good for, or one could consider gadgeteer or yoshi. If you made sure that the filename goes to standard output you could even pipe them in a series of transformations, either on CLI or graphically, like Automator on Mac OSX.

Then once you have those lined up, you could have an overall GUI to run the applets. In fact, IIRC correctly IM on Linux has such a thing called “display” - on Haiku it crashes due to the lack of an X11 server.

I’m going to think about this.

1 Like

That would be a possibility. Provide common operations as a set of GUIs.

Didn’t know about the Linux capability. I’ll take a look.

Yeah boi.

I agree.

What is this? 1980?

OK, I’ve started work on a yab template for applets. https://github.com/clasqm/yabTemplatePicker_templates/tree/master/IMApplet

When I have that set up I will create a few applets, then start working on the applet manager.

Applets won’t have to be written in yab, of course. The idea is to create a graphics workflow system that will let anyone write their own applets in any language as long as they follow a few simple guidelines and they won’t have to be limited to ImageMagick front-ends. Drop your applet in the right folder and it will be picked up by the workflow manager. But it will look better if there is some uniformity in appearance. The workflow manager will let you combine them in various ways, then write a shell script, and probably xicon it so that you can just drop an image file on the icon. It won’t be drag-and-drop like Mac OSX Automator, but the same idea applies. Just simpler. :grinning:

Looks like this will be my major project this year. But if we can have a workflow for graphics, It will be fairly easy to make one for text files too.

1 Like

Haiku has some kind of API for file conversion IIRC? Would it make sense to use ImageMagick within this API?

An ImageMagick translator could be interesting, yes. That doesn’t automatically provide a GUI for it however, so we need to do that first.

The translators have already been (ab)used for aquiring images from a scanner so it should not be a problem.

Not too surprisingly I’m working on something similar for AGMSScriptOCron / FetchIt v2: processing steps for downloaded audio files. Each step is just a bash command line, which does whatever it needs to do. There’s also some metadata about the data types of inputs and outputs, so different kinds of steps can be linked together properly.

ClasQM was diligent

https://yahbblog.wordpress.com/2017/06/10/repo-update-early-june-2017/

But he posts it only on facebook. Looks good.

You are so right, a gui for all functions of imagemagick will be a monster and ofter not makeable, because you can combine these functions.

But i start to create a gui for ImageMagick, because it was like a fever. First i start to do the same like that things clasqm are shown on his screens, then i go deeper and start to add these learned education into a simple gui. At the moment i am at version 0.8-1 with 69 functions of imagemagick and this in one week.

http://discuss.haiku-os.org/uploads/default/original/1X/57874608c9e4db29fe42a21c982afd5c2c8badc4.png

http://software.besly.de

How made a GUI for commands? Can you give an example? a tutorial? (for C++ and yab)

Thank’ s.

Running a command line tool in yab is not so complicated:

Example:

    `Output$=System$("cdrecord /path/to/ISO-file")`

With this command you will burn a given iso file with cdreord to the first cd burning drive.

http://besly.de/menu/search/archiv/dev/yab_tutorial2_eng.html

Watch out the BeSly knowledge base: http://www.besly.de here you can find tutorials for yab.

Thank you lelldorin. Can anyone give an example or a tutorial in C ++? (GUI for command). It is important to me.

No problem

Try this: std::string result = system( “./some_command” ) ;

Thank you again lelldorin.
I found a program in the Haiku Archives. I will study the code. If I find time, I’ll make a GUI for Tesseract OCR.

@michel

Hello michel,

i do my first look at one of your imagemagic tool “vignette” and i like it.
There is only one thing you should add: deactive the buttons and menu options during the image manipulation, because the user does not see that anything is working.

OPTION SET "Button_Name", "Enabled", false
MENU SET  "Edit", "Vignette the image", "Disable","View_Name_of_Menu"

Good work and much fun

Greets Lelldorin

Regarding Tesseract OCR, there is a translator add-on that allow to run OCR on any image simply by “converting” it from image to text. Give it a try before starting to write a GUI for it.

Where is it? I can’t find the translator add-on.