Login - Create Account

Open A Specific Filter From Filter Forge Plugin

Login or Register to post new topics or replies
Baron
Baron
Posts: 8
I have a filter called "Tricolor Bloom" which I use a lot. I would like to setup a shortcut to this in PainShop Pro. In order to do this I would need my filter available in the Plugins menu.

I can see in PaintShop Pro, when I have both Filter Forge 6 and 7 installed, that the Filter Forge plugin shows 2 options from within PaintShop Pro, one for version 6 and another for version 7, under a similar branch, so it looks maybe possible to do what I want.

For example, currently I see this under the PainShop Pro "Effects" menu:

Effects->Plugins->Filter Forge->Filer Forge 6...
Effects->Plugins->Filter Forge->Filer Forge 7...


Additionally I would like to be able to see my filter there like this:

Effects->Plugins->Filter Forge->Filer Forge 6...->Tricolor Bloom

This feature would only be good for a small handful of filters, maybe 10 filters that can be specified in the Filter Forge app.

With this feature, I could not only make a shortcut to my filter inside of PaintShop Pro, but I could also use it within macros, which is quite powerful.

Additionally, it would be nice to have an option to run the specified filter without any user interaction.
  Details E-Mail
GMM
Moderator
Filter Forge, Inc
Posts: 2836
Quote
Baron wrote:
it would be nice to have an option to run the specified filter without any user interaction.


You may want to take a look at our command-line renderer.
  Details E-Mail
Baron
Baron
Posts: 8
I would like to setup a shortcut in my graphics editor, PaintShop Pro, that lets me run a specific filter operation on the current image I'm editing.

The command-line renderer is a very handy feature. It works best for batch operations, rather than in-place editing. It can do some of what I want. It's not a plugin, so I can't pass it anything my graphics editor is editing directly. The renderer operates on saved image files.

I can have PaintShop Pro run the command-line renderer using a script. The only issue being, the renderer operates on saved image files. Using the command-line renderer, I would need to save the current image first, then run the filter on it, and then reload the modified image.

I typically work with images that have many layers. If I could pass the command-line renderer the current layer I'm editing and have it pass it back, then it would be a useable solution.

If PaintShop Pro can somehow save the current layer to a temporary file, and then reload it after performing the filter operation, then this could work. I don't currently know of a way to do that in PaintShop Pro from a script, but it might be possible. I will look at this in a little more detail.

Thanks.

UPDATE: I am able to create a PaintShop Pro script that saves the current edited image (not the layer though, the whole image) to a temporary file, run the command-line renderer on that temporary file, then reopen the new modified image from the PaintShop Pro script. The net effect is like this this: click a script assigned button in PaintShop Pro, the filter is run on the whole image, then the altered image is opened automatically in PaintShop Pro. This is close to what I need. I just need to somehow isolate the layer I want to run the filter on, and save only that layer. If I can get that figured out I'm good to go.
  Details E-Mail
Baron
Baron
Posts: 8
I was able to get this working using the command-line renderer after all. smile:D

Here are the steps to get this working in a PaintShop Pro script (I can't post the script code for some strange reason):

1. Script performs copy (if a layer is selected, just the layer is copied).
2. Script pastes the copy as a "new image" (isolating a layer if a layer was selected).
3. Script saves the copy to a temporary predefined file location called "C:\temp\ffTemp.png".
4. Script closes the copy it saved.
5. Script runs the Filter Forge command-line renderer with the appropriate XML file (the XML file tells Filter Forge to load "C:\temp\ffTemp.png" and save to "C:\temp\ffTempResult.png").
6. Script opens the new filtered file "C:\temp\ffTempResult.png" created by the Filter Forge command-line renderer.
7. Script copies the new filtered image.
8. Script closes the new filtered image.
9. Script pastes the new filtered image as a "new layer".

This works perfectly. smile:D

Fortunately, PaintShop Pro always goes back to the previously selected image whenever you close the current opened image. This makes step 4 and 8 bring focus back to the original image. So the script doesn't need to keep track of which image to go back to when these temporary images are closed in PainShop Pro.

For most of these script steps you can just record them using the UI, but for step 5, you will need to add new Python code directly in to the script with a text editor.

For step 5 you would add script code similar to this:

Code
call( ["C:\\Program Files\\Filter Forge 6\\Bin_x64\\FFXCmdRenderer-x64.exe", "C:\\Users\\Baron\\Documents\\Filter Forge\\RunFilter.xml"] )


Additionally, at the start of the script you need to add this:

Code
from subprocess import call


The Python function "call" runs the command-line renderer. It takes 2 parameters. The first is the path of the command-line renderer. The second is the path of the XML settings file the renderer uses.

In my example, I'm using RunFilter.xml as my XML settings file for Filter Forge. It uses these file path values matching the values in the PaintShopPro script.

<Image val ue="C:\temp\ffTemp.png" />
<Result path="C:\temp\ffTempResult.png" format="png">

You could have multiple filters setup this way. You will need a separate Filter Forge XML file for each filter. The PaintShop Pro script can be identical except for the name of the XML file in step 5.

Another option is to have the PaintShop pro script create the Filter Forge XML file directly using Python code in the script. That would give the script more control, but that's a lot more coding.

One last note, the PainShop Pro script must be a TRUSTED script or this will not work.
  Details E-Mail

Join Our Community!

Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!

29,320 Registered Users
+5 new last day!

137,480 Posts
+8 new last day!

13,394 Topics
+10 new in 7 days!

Online Users Last 5 minutes:

13 unregistered users.

Recent Wiki Edits:

Follow filterforge on Twitter