[]
        
(Showing Draft Content)

GcImageViewer

Class: GcImageViewer

Document Solutions Image Viewer is a fast JavaScript based client-side Image Viewer that runs in all major browsers.

Note that DsImageViewer is the new name for GcImageViewer, with the same API.

During this transition period we are publishing both versions, but it is recommended that you switch to using DsImageViewer when possible.

Example

const viewer = new GcImageViewer("#root");

Extended by

Implements

Properties

LicenseKey

static LicenseKey: string;

Gets or sets the license key.


hasImage

hasImage: boolean;

Indicates whether the viewer has opened the image.

Example

 const hasImageFlag = viewer.hasImage;

Implementation of

ImageViewerAPI.hasImage


adaptiveNaturalSize

adaptiveNaturalSize: Size;

Gets the active image DPI adaptive natural size. This is the image size that will be used to display the image at 100%. The adaptiveNaturalSize property is used for the actual size calculations.

Implementation of

ImageViewerAPI.adaptiveNaturalSize


actualSize

actualSize: Size;

Gets the actual display size of the active image, including the active zoom value.

Implementation of

ImageViewerAPI.actualSize


language

language: string;

language - A property that retrieves the standardized language key based on the provided language option. The language key is determined by the options.language setting.

Returns

Standardized language key (e.g., 'en', 'ja').

Implementation of

ImageViewerAPI.language


layers

layers: ImageLayer[];

Image layers. Used for painting.

Implementation of

ImageViewerAPI.layers


naturalSize

naturalSize: Size;

Gets the active image natural size. The natural size is the image's width/height if drawn with nothing constraining its width/height, this is the number of CSS pixels wide the image will be.

Implementation of

ImageViewerAPI.naturalSize


openParameters

openParameters: undefined | OpenParameters;

The Open parameters that were used to open an image.

Implementation of

ImageViewerAPI.openParameters


undoStorage

undoStorage: UndoStorage;

Command based undo state storage.

Example

const isUndoInProgress = viewer.undoStorage.undoInProgress;

Implementation of

ImageViewerAPI.undoStorage


hasUndo

hasUndo: boolean;

Gets a value indicating whether the image viewer can undo changes.

Example

if(viewer.hasUndo) {
  viewer.undo();
}

Implementation of

ImageViewerAPI.hasUndo


hasRedo

hasRedo: boolean;

Gets a value indicating whether the image viewer can redo changes.

Example

if(viewer.hasRedo) {
  viewer.redo();
}

Implementation of

ImageViewerAPI.hasRedo


undoIndex

undoIndex: number;

Gets current undo level index.

Example

alert("The current Undo level index is " + viewer.undoIndex);

Implementation of

ImageViewerAPI.undoIndex


undoCount

undoCount: number;

Gets total undo levels count.

Example

alert("Undo levels count is " + viewer.undoCount);

Implementation of

ImageViewerAPI.undoCount


version

version: string;

Returns the current version of the DS Image viewer.

Example

alert("The DsImageViewer version is " + viewer.version);

Implementation of

ImageViewerAPI.version


framesCount

framesCount: number;

Gets total frames count for the active image. Applicable for TIFF, ICO images.

Example

const viewer = new DsImageViewer('#root');
viewer.onAfterOpen.register(function() {
  alert("The image opened. Total number of frames: " + viewer.framesCount);
});
viewer.open('Test.png');

Implementation of

ImageViewerAPI.framesCount


eventBus

eventBus: EventBus;

Image viewer event bus.

Example

viewer.eventBus.on("after-open", function(args) {
  console.log("Image opened.", args);
});
viewer.open('Test.png');

Implementation of

ImageViewerAPI.eventBus


onAfterOpen

onAfterOpen: EventFan;

The event raised when the user changes the viewer theme.

Example

const viewer = new DsImageViewer('#root');
viewer.onAfterOpen.register(function() {
  alert("The image opened.");
});
viewer.open('Test.png');

Implementation of

ImageViewerAPI.onAfterOpen


onBeforeOpen

onBeforeOpen: EventFan;

Occurs immediately before the image opens.

Example

const viewer = new DsImageViewer('#root');
viewer.onBeforeOpen.register(function(args) {
  alert("A new image will be opened,\n payload type(binary or URL): " + args.type +",\n payload(bytes or string): " + args.payload);
});
viewer.open('Test.png');

Implementation of

ImageViewerAPI.onBeforeOpen


onError

onError: EventFan;

The event indicating error.

Example

function handleError(args) {
    console.error(args);
}
const viewer = new DsImageViewer('#root');
viewer.onError.register(handleError);
viewer.open('Test.png');

Implementation of

ImageViewerAPI.onError


onImagePaint

onImagePaint: EventFan;

The event raised when appearance image element changed.

Implementation of

ImageViewerAPI.onImagePaint


isAnimationStarted

isAnimationStarted: boolean;

Gets a value indicating whether the image animation has started.

Example

// Toggle image animation:
const viewer = DsImageViewer.findControl("#root");
if(viewer.isAnimationStarted) {
  viewer.stopAnimation();
} else {
  viewer.startAnimation();
}

Implementation of

ImageViewerAPI.isAnimationStarted


options

options: Partial<ViewerOptions>;

Viewer options

Implementation of

ImageViewerAPI.options


toolbarLayout

toolbarLayout: ImageToolbarLayout;

Defines the layout of the toolbar. The full list of the viewer specific toolbar items:

'open', '$navigation', 'navigation-auto', '$split', 'zoom', '$fullscreen', 'save', 'about'

Example

// Customize the toolbar layout:
viewer.toolbarLayout.viewer.default = ["open", "$zoom", "$fullscreen", "save", "print", "about"];
viewer.applyToolbarLayout();

Implementation of

ImageViewerAPI.toolbarLayout


frameIndex

frameIndex: number;

Gets or sets the active frame index. This is applicable for multi-frame images such as TIFF and ICO.

When setting this value, it will also be used as the initial frame index when opening a new image.

Example

const viewer = new DsImageViewer('#root');
viewer.frameIndex = 9;
viewer.open('Test.ico');

Implementation of

ImageViewerAPI.frameIndex


zoom

zoom: ZoomSettings;

Gets or sets the current zoom settings

Implementation of

ImageViewerAPI.zoom

Methods

findControl()

static findControl(selector): undefined | ImageViewerAPI;

Gets the viewer instance using the host element or host element selector.

Parameters

selector

Root HTML element or its CSS selector

string | HTMLElement

Returns

undefined | ImageViewerAPI

Image Viewer instance if found

Example

const viewer = DsImageViewer.findControl("#root");

ensurePaintLayer()

ensurePaintLayer(): ImageLayer;

Create at least one image layer which will be used for painting.

Returns

ImageLayer

Implementation of

ImageViewerAPI.ensurePaintLayer


removeLayer()

removeLayer(layerOrIndex): void;

Remove and dispose image layer given by argument layerOrIndex.

Parameters

layerOrIndex

Image layer or image layer index or image layer name.

string | number | ImageLayer

Returns

void

Implementation of

ImageViewerAPI.removeLayer


removeLayers()

removeLayers(): void;

Remove and dispose all image layers.

Returns

void

Implementation of

ImageViewerAPI.removeLayers


applyOptions()

applyOptions(): void;

Call this method in order to apply changed options.

Returns

void

Example

viewer.applyOptions();

Implementation of

ImageViewerAPI.applyOptions


applyToolbarLayout()

applyToolbarLayout(): void;

Call this method in order to apply changes in @see:toolbarLayout.

Returns

void

Examples

viewer.toolbarLayout.viewer.default = ["open", "save"];
viewer.applyToolbarLayout();
   const viewer = new DsImageViewer(document.querySelector("#viewer"));
   const toolbar = viewer.toolbar;
   const toolbarLayout = viewer.toolbarLayout;
   toolbar.addItem({
       key: 'custom-action',
       icon: { type: "svg", content: '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path style="fill: #205F78;" d="M20.25 12l-2.25 2.25 2.25 2.25-3.75 3.75-2.25-2.25-2.25 2.25-2.25-2.25-2.25 2.25-3.75-3.75 2.25-2.25-2.25-2.25 2.25-2.25-2.25-2.25 3.75-3.75 2.25 2.25 2.25-2.25 2.25 2.25 2.25-2.25 3.75 3.75-2.25 2.25 2.25 2.25z"></path></svg>' },
       title: 'Custom action',
       checked: false, enabled: false,
       action: function () {
         alert("Implement your action here.");
       },
       onUpdate: function (args) {
           return {
               enabled: true,
               checked: false,
               title: 'Custom action title'
           }
       }
   });
   toolbarLayout.viewer.default.splice(0, 0, "custom-action");
   viewer.applyToolbarLayout();

Implementation of

ImageViewerAPI.applyToolbarLayout


addPlugin()

addPlugin(plugin): boolean;

Adds a plugin instance to the DsImageViewer. This method is now intended for internal and officially supported plugins only. Custom or third-party plugins are no longer supported starting from version 9.0. The plugin system remains available for internal use to provide optional viewer features, such as ImageFiltersPlugin, PageToolsPlugin, and PaintToolsPlugin. Attempting to register non-official plugins may lead to undefined behavior and is not supported by the product team.

Parameters

plugin

ImageViewerPluginReference

The plugin instance

Returns

boolean

true if added successfully; otherwise false.

Example

// ✅ Supported (built-in plugin)
const viewer = new DsImageViewer("#root");
viewer.addPlugin(new ImageFiltersPlugin());

// ❌ Not supported (custom plugin)
viewer.addPlugin(new CustomPlugin()); // Custom plugins are no longer supported

Implementation of

ImageViewerAPI.addPlugin


addKeyboardListener()

addKeyboardListener(uniqueKey, handler): void;

Add window keyboard listener.

Parameters

uniqueKey

string

Listener key.

handler

WindowKeyboardListener

Keyboard event handler.

Returns

void

Implementation of

ImageViewerAPI.addKeyboardListener


removeKeyboardListener()

removeKeyboardListener(uniqueKey): void;

Remove window keyboard listener.

Parameters

uniqueKey

string

Listener key.

Returns

void

Implementation of

ImageViewerAPI.removeKeyboardListener


configurePluginMainToolbar()

configurePluginMainToolbar(pos, buttonsToInsert): void;

Allows to configure the main toolbar layout.

Parameters

pos

The position where the buttons should be inserted. Use false or -1 to skip insertion. Undefined means the position will be determined automatically.

undefined | number | boolean

buttonsToInsert

string[]

An array of button keys to be inserted.

Returns

void

Example

// Apply a custom layout to insert "zoomIn" and "zoomOut" buttons at position 2 for the "PaintTools" plugin.
viewer.configurePluginMainToolbar(2, ["zoomIn", "zoomOut"]);

Implementation of

ImageViewerAPI.configurePluginMainToolbar


getEventCanvasPoint()

getEventCanvasPoint(event, includeDpi): PointLocation;

Retrieves the point location from the pointer event provided by the 'event' parameter. The returned point is relative to the active canvas element.

Parameters

event

DOM Pointer or Mouse event object.

MouseEvent | PointerEvent

includeDpi

boolean

Returns

PointLocation

Implementation of

ImageViewerAPI.getEventCanvasPoint


setCursor()

setCursor(cursorType): void;

Sets the cursor style for the image viewer

Parameters

cursorType

GlobalCursorType

The cursor style to apply

Returns

void

Examples

// Set rotate cursor during image rotation
viewer.setCursor('rotate');
// Set resize cursor when hovering over edges
viewer.setCursor('nwse-resize');

See

GlobalCursorType for all available cursor options

Implementation of

ImageViewerAPI.setCursor


resetCursor()

resetCursor(): void;

Resets the cursor to default style

Returns

void

Examples

// Reset cursor when operation completes
viewer.resetCursor();
// Reset cursor on mouse leave
viewerElement.addEventListener('mouseleave', () => {
  viewer.resetCursor();
});

Implementation of

ImageViewerAPI.resetCursor


toggleCursor()

toggleCursor(cursorType): void;

Toggles between specified cursor and default style

Parameters

cursorType

Cursor style to apply, or false to reset

false | GlobalCursorType

Returns

void

Examples

// Toggle grab cursor during drag operations
viewer.toggleCursor(isDragging ? 'grab' : false);
// Toggle zoom cursor based on modifier key
document.addEventListener('keydown', (e) => {
  if (e.ctrlKey) {
    viewer.toggleCursor('zoom-in');
  }
});

Implementation of

ImageViewerAPI.toggleCursor


dataUrlToImageData()

dataUrlToImageData(dataUrl, destinationSize?): Promise<ImageData>;

Load image data using given data url.

Parameters

dataUrl

string

destinationSize?

Size

Defines needed image size

Returns

Promise<ImageData>

Implementation of

ImageViewerAPI.dataUrlToImageData


confirm()

confirm(
   confirmationText?, 
   level?, 
   title?, 
   buttons?): Promise<boolean | ConfirmButton>;

Display confirmation dialog.

Parameters

confirmationText?

any

Confirmation text can be plain string or JSX.Element if you're using React.

level?

"error" | "info" | "warning"

title?

string

buttons?

ConfirmButton[]

Returns

Promise<boolean | ConfirmButton>

Example

const confirmResult = await viewer.confirm("Apply changes?", "info", "Confirm action", ["Yes", "No", "Cancel"]);
if (confirmResult === "Yes") {
  // put your code here
} else if (confirmResult === "No") {
  // put your code here
} else {
  // put your code here
}

Implementation of

ImageViewerAPI.confirm


removePlugin()

removePlugin(pluginId): void;

Removes a plugin instance from the DsImageViewer. This method remains available for internal and officially supported plugins only. Custom or third-party plugins are no longer supported starting from version 9.0.

Parameters

pluginId

Plugin id or plugin instance.

ImageViewerPluginReference | PluginType

Returns

void

Example

// ✅ Supported
viewer.removePlugin("ImageFiltersPlugin");

// ❌ Not supported
viewer.removePlugin("CustomPluginId");

Implementation of

ImageViewerAPI.removePlugin


showAbout()

showAbout(): void;

Show about dialog.

Returns

void

Implementation of

ImageViewerAPI.showAbout


findPlugin()

findPlugin(pluginId): 
  | null
  | ImageViewerPluginReference;

Finds a viewer plugin by its id.

Parameters

pluginId

PluginType

Plugin id

Returns

| null | ImageViewerPluginReference

Example

// find imageFilters plugin:
const imageFilters = viewer.findPlugin("imageFilters");
// find pageTools plugin:
const pageTools = viewer.findPlugin("pageTools");

Implementation of

ImageViewerAPI.findPlugin


removePlugins()

removePlugins(): void;

Remove all plug-ins.

Returns

void

Example

viewer.removePlugins();

Implementation of

ImageViewerAPI.removePlugins


clearUndo()

clearUndo(): void;

Clear undo storage.

Returns

void

Implementation of

ImageViewerAPI.clearUndo


executeCommand()

executeCommand(command): Promise<void>;

Execute a new command.

Parameters

command

UndoCommandSupport

Instance of a command.

Returns

Promise<void>

Implementation of

ImageViewerAPI.executeCommand


newImage()

newImage(options?): Promise<any>;

Create new empty image.

Parameters

options?

Partial<Size> & OpenParameters

Optional. New image parameters.

Returns

Promise<any>

Example

await viewer.newImage({ width: 300, height: 300, fileName: "myImage.png" });

Implementation of

ImageViewerAPI.newImage


open()

open(file, openParameters?): Promise<any>;

Open Image document.

Parameters

file

Image URL or it's binary data.

string | URL | Uint8Array<ArrayBufferLike>

openParameters?

Image format or image opening parameters object.

OpenParameters | ImageFormatCode | ImageFormatName

Returns

Promise<any>

Example

viewer.open("Images/HelloWorld.png");

Implementation of

ImageViewerAPI.open


dispose()

dispose(): void;

Use this method to close and release resources occupied by the DsImageViewer.

Returns

void

Implementation of

ImageViewerAPI.dispose


showActivitySpinner()

showActivitySpinner(container?): void;

Show activity spinner.

Parameters

container?

HTMLElement

Returns

void

Example

viewer.showActivitySpinner();

Implementation of

ImageViewerAPI.showActivitySpinner


hideActivitySpinner()

hideActivitySpinner(): void;

Hide activity spinner.

Returns

void

Example

viewer.hideActivitySpinner();

Implementation of

ImageViewerAPI.hideActivitySpinner


startAnimation()

startAnimation(): void;

Start GIF animation.

Returns

void

Example

DsImageViewer.findControl("#root").startAnimation();

Implementation of

ImageViewerAPI.startAnimation


stopAnimation()

stopAnimation(): void;

Stop GIF animation. *

Returns

void

Example

  • DsImageViewer.findControl("#root").stopAnimation();

Implementation of

ImageViewerAPI.stopAnimation


toggleAnimation()

toggleAnimation(): void;

Toggle GIF animation.

Returns

void

Example

DsImageViewer.findControl("#root").toggleAnimation();

Implementation of

ImageViewerAPI.toggleAnimation


undo()

undo(): Promise<void>;

Undo changes.

Returns

Promise<void>

Example

if(viewer.hasUndo) {
  viewer.undo();
}

Implementation of

ImageViewerAPI.undo


redo()

redo(): Promise<void>;

Redo changes.

Returns

Promise<void>

Example

if(viewer.hasRedo) {
  viewer.redo();
}

Implementation of

ImageViewerAPI.redo


getEvent()

getEvent(eventName): EventFan;

Get event object.

Parameters

eventName

string

Embedded or custom event name.

Returns

EventFan

Example

viewer.getEvent("CustomEvent").register(function(args) {
  console.log(args);
});

Implementation of

ImageViewerAPI.getEvent


triggerEvent()

triggerEvent(eventName, args?): void;

Trigger event.

Parameters

eventName

string

Embedded or custom event name.

args?

Record<string, unknown>

Arguments for event handler function.

Returns

void

Example

// Listen CustomEvent:
viewer.getEvent("CustomEvent").register(function(args) {
  console.log(args);
});
// Trigger CustomEvent:
viewer.triggerEvent("CustomEvent", { arg1: 1, arg2: 2});

Implementation of

ImageViewerAPI.triggerEvent


getOriginalImageDataUrl()

getOriginalImageDataUrl(): string;

Get unmodified current image data url.

Returns

string

Implementation of

ImageViewerAPI.getOriginalImageDataUrl


getImageDataUrl()

getImageDataUrl(): string;

Get current image data url.

Returns

string

Implementation of

ImageViewerAPI.getImageDataUrl


setImageDataUrl()

setImageDataUrl(dataUrl): Promise<void>;

Modify current image data url.

Parameters

dataUrl

any

Returns

Promise<void>

Implementation of

ImageViewerAPI.setImageDataUrl


showSecondToolbar()

showSecondToolbar(toolbarKey): Promise<void>;

Displays a second toolbar specified by the toolbarKey argument.

Parameters

toolbarKey

SecondToolbarType

The key identifying the specific second toolbar to show.

Returns

Promise<void>

A Promise that resolves once the second toolbar is successfully displayed.

Example

// Show the page tools toolbar
viewer.showSecondToolbar("page-tools");

Implementation of

ImageViewerAPI.showSecondToolbar


hideSecondToolbar()

hideSecondToolbar(toolbarKey?): Promise<void>;

Hides the second toolbar. This method deactivates any active editor mode associated with the second toolbar and then hides the toolbar itself.

Parameters

toolbarKey?

SecondToolbarType

Optional. The key identifying the specific second toolbar to hide. If provided, only hides the specified toolbar if it exists.

Returns

Promise<void>

A Promise that resolves once the second toolbar is successfully hidden.

Examples

// Hide the second toolbar
viewer.hideSecondToolbar();
// Hide a specific second toolbar by passing its key
viewer.hideSecondToolbar("page-tools");

Implementation of

ImageViewerAPI.hideSecondToolbar


openLocalFile()

openLocalFile(): void;

Show the file open dialog where the user can select the Image file.

Returns

void

Example

viewer.openLocalFile();

Implementation of

ImageViewerAPI.openLocalFile


save()

save(options?, original?): void;

Saves the Image document loaded in the Viewer to the local disk.

Parameters

options?

Optional Destination file name or the save options, including the destination file name and other settings.

string | SaveOptions

original?

boolean

Optional Flag indicating whether to use the initial version of the image for save. Defaults to false.

Returns

void

Examples

// Example: Save the modified image without using specific options.
const viewer = DsImageViewer.findControl("#root");
viewer.save();
// Example: Save the modified image as "image.png".
const viewer = DsImageViewer.findControl("#root");
viewer.save({ fileName: "image.png" });
// Example: Download the original version of the image as "original_image.jpg".
const viewer = DsImageViewer.findControl("#root");
viewer.save({ fileName: "original_image.jpg", original: true });
// Example: Save the modified image in PNG format.
const viewer = DsImageViewer.findControl("#root");
viewer.save({ convertToFormat: "image/png" });
// Example: Save the modified image with a custom file name and in JPEG format.
const viewer = DsImageViewer.findControl("#root");
viewer.save({ fileName: "custom_name", convertToFormat: "image/jpeg" });

Implementation of

ImageViewerAPI.save


showMessage()

showMessage(
   message, 
   details, 
   severity): void;

Shows the message for the user.

Parameters

message

string

Message title text

details

string

Additional details text, empty by default.

severity

Message severity, default "info".

"error" | "info" | "warn" | "debug"

Returns

void

Implementation of

ImageViewerAPI.showMessage