General
contains information about the extension
Signature
Set to $obsidian$ to identify this as a NPS 3.x extension.
As of NPS 4.0, this directive is no longer required.
Name
The display name of the extension or filter
Author
The author or copyright information displayed in the Component Manager
Description
A description of what the extension does, displayed in the Component Manager.
For filters, this is also displayed in the Filter Gallery.
MinNPSVersion
The minimum version of NPS Image Editor (mainstream branch) that can load this extension.
All NPS "Pyrite" extensions should have this set to 4.0.0 at minimum.
MaxNPSVersion
The maximum version of NPS Image Editor (mainstream branch) that can load this extension.
Generally NPS Image Editor is backwards-compatible so there is typically no reason to set this.
However, this can be useful if combined with MinNPSVersion if you are distributing
a "2 part" extension that is designed to work for both older and newer versions.
Type
Specifies the type of the extension which determines certian behaviors. Valid values are:
Filter - shows up in the Filter menu and gallery and gets the necessary data needed for a filter (such as the image to process)
General - for NPS 3.x extensions only, functionally similar to a filter but can be placed anywhere in the menu structure and will not show up in the Filter Gallery
Scriptable - runs a script (.npss file)
ExecutableName
Specifies the main executable for the extension. This will depend on the type and version of the extension.
For NPS 3.x "Obsidian" extensions of type Filter or General, specify a .exe file.
For NPS 4.x "Pyrite" extensions of type Filter, specify a .dll file, or specify $auto$
to allow the auto-loader to find a valid DLL file in the same folder.
For extensions of type Scriptable, specify a .npss file.
ClassName
For NPS 4.x "Pyrite" extensions of type Filter, specify the class name of a class implementing INPSFilter,
or specify $auto to automatically choose the first matching INPSFilter object exported by your assembly.
Filter
Contains information specific to Filter extensions
Category
Specifies the category of the filter. This is used for placement within the Filter menu and Filter Gallery.
IndexedBehavior
Specifies how the filter handles images with indexed colors.
-
TrueColorOnly - The filter is only able to work on true color images, so the host will convert
the image to true color and allow your extension to complete. Afterwards the image will be converted back to
indexed format using the closest-matching colors, with some exptected loss of color information.
-
ModifiesColorOnly - The filter only modifies color information without moving pixels around, such
as a channel mixer. This means the filter will function properly if it were to operate on the palette instead
of the pixels. The host will send your filter a true color preview image for the UI, then run the extension a second time
with a 16x16px image consisting of the palette's pixels, allowing it to modify the palette in place of the image.
-
ModifiesPositionOnly - The filter only modifies positions of existing pixels without any blending,
such as a warp filter with no smoothing. This means the filter will function properly if the "raw" 8-bit index data
is manipulated. The host will send your filter a true color preview image for the UI, then run the extension a second time
with an image consisting of the raw index values, allowing it to maintain correct indexing of colors.
-
Blocked - The filter will be prevented from running and an error message will be displayed. This
should only be used when it is not possible to use one of the other options.
-
Native - The filter will receive a bitmap with both raw indexed information and palette data, allowing
your filter to handle the details of pixels and palette data on its own. This is currently not implemented but is
planned for a future version of NPS.
UI
Contains UI information for NPS 4.x "Pyrite" filters.
Type
Specifies the type of UI. Valid values are:
Simple - uses a JSON file specified in the Definition directive
WinForms - uses a WinForms user control
None - does not use a UI (just applies the filter)
Definition
Specifies the UI definition.
For Type = "Simple" filters, this should be the name of a .json file. For more details about the contents
of that file, please see the Simple UI Reference.
For Type = "WinForms" filters, this is either the name of a class implementing INPSFormsUI or $auto$
to automatically choose the first matching INPSFormsUI exported by your assembly.
HideChannelPicker
If True, hides the channel picker checkboxes at the bottom of the filter UI
DisableAlphaChannelPicker
If True, disables the selection of the Alpha channel in the channel picker. Has no effect if HideChannelPicker = true.
HideResetButton
If True, hides the Reset button. Note that your filter must still set default values for initialization.
FixedPreview
If True, prevents the user from panning around the preview. Has no effect if HidePreview = true.
HidePreview
If True, hides the entire preview pane and frees up the space in the dialog