Interface describing the ImageViewer API, primarily utilized for control/plugin development purposes.

Hierarchy

  • IImageViewer

Implemented by

Accessors

  • get onBeforeOpen(): EventFan<BeforeOpenEventArgs>
  • Occurs immediately before the image opens.

    Example

    var 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');

    Returns EventFan<BeforeOpenEventArgs>

  • get isFullscreen(): boolean
  • Gets a value indicating full screen mode.

    Returns boolean

  • get isToolbarHidden(): boolean
  • Gets a value indicating whether the toolbar is hidden.

    Returns boolean

  • get eventBus(): IEventBus
  • Image viewer event bus.

    Example

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

    Returns IEventBus

  • get hasImage(): boolean
  • Indicates whether the viewer has opened the image.

    Example

     var hasImageFlag = viewer.hasImage;
    

    Returns boolean

  • get naturalSize(): { width: number; height: number }
  • 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.

    Returns { width: number; height: number }

    • width: number
    • height: number
  • get undoStorage(): IUndoStorage
  • Command based undo state storage.

    Example

    const isUndoInProgress = viewer.undoStorage.undoInProgress;
    

    Returns IUndoStorage

  • get hostElement(): Element
  • Outermost viewer's host element containing the gc-viewer-host class.

    Returns Element

Methods

  • Updates the panel visibility.

    Parameters

    • panelKey: PanelHandle
    • Optional visible: boolean

    Returns void

  • Updates panel settings such as visibility, label or "enabled" status.

    Parameters

    • panelKey: PanelHandle
    • settings: Partial<PanelSettings>

    Returns void

  • Gets the current panel state.

    Parameters

    • panelKey: PanelHandle

    Returns null | PanelSettings

  • Orders and filters panel items. '*' indicates "the rest of panels". 'sep'/'separator' indicated menu separator.

    Parameters

    • layout: string[]

    Returns void

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

    Example

    // Example: Save the modified image without using specific options.
    const viewer = DsImageViewer.findControl("#root");
    viewer.save();

    Example

    // Example: Save the modified image as "image.png".
    const viewer = DsImageViewer.findControl("#root");
    viewer.save({ fileName: "image.png" });

    Example

    // 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

    // Example: Save the modified image in PNG format.
    const viewer = DsImageViewer.findControl("#root");
    viewer.save({ convertToFormat: "image/png" });

    Example

    // 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" });

    Parameters

    • Optional options: string | SaveOptions

      The save options, including the destination file name and other settings.

    • Optional original: boolean

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

    Returns void

  • Toggle full screen mode.

    Parameters

    • Optional fullscreen: boolean

    Returns void

  • Toggle toolbar visibility.

    Parameters

    • Optional show: boolean

    Returns void

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

    Example

    viewer.toolbarLayout.viewer.default = ["open", "save"];
    viewer.applyToolbarLayout();

    Example

       var viewer = new GcImageViewer(document.querySelector("#viewer"));
    var toolbar = viewer.toolbar;
    var 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();

    Returns any

  • Remove window keyboard listener.

    Parameters

    • uniqueKey: string

    Returns any

  • Used preliminarily by the plugin developers to configure the main toolbar layout.

    Example

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

    Returns

    void

    Parameters

    • pos: undefined | number | boolean

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

    • buttonsToInsert: string[]

      An array of button keys to be inserted.

    Returns any

  • Load image data using given data url.

    Parameters

    • dataUrl: string
    • Optional destinationSize: { width: number; height: number }
      • width: number
      • height: number

    Returns Promise<ImageData>

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

    Returns IImageLayer

  • Finds a viewer plugin by its id.

    Example

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

    Parameters

    • pluginId: string

    Returns null | IViewerPlugin

  • 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: PointerEvent | MouseEvent

      DOM Pointer or Mouse event object.

    Returns PointLocation

  • Get current image data url.

    Returns string

  • Sets the cursor style for the image viewer

    Returns

    Example

    // Set rotate cursor during image rotation
    viewer.setCursor('rotate');

    Example

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

    See

    GlobalCursorType for all available cursor options

    Parameters

    Returns IImageViewer

  • Resets the cursor to default style

    Returns

    Example

    // Reset cursor when operation completes
    viewer.resetCursor();

    Example

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

    Returns IImageViewer

  • Toggles between specified cursor and default style

    Returns

    Example

    // Toggle grab cursor during drag operations
    viewer.toggleCursor(isDragging ? 'grab' : false);

    Example

    // Toggle zoom cursor based on modifier key
    document.addEventListener('keydown', (e) => {
    if (e.ctrlKey) {
    viewer.toggleCursor('zoom-in');
    }
    });

    Parameters

    Returns IImageViewer

  • Modify current image data url.

    Parameters

    • dataUrl: any

    Returns Promise<void>

  • Show activity spinner.

    Example

    viewer.showActivitySpinner();
    

    Parameters

    • Optional container: HTMLElement

    Returns any

  • Hide activity spinner.

    Example

    viewer.hideActivitySpinner();
    

    Returns any

  • Display confirmation dialog.

    Parameters

    • Optional confirmationText: string | Element
    • Optional level: "error" | "info" | "warning"
    • Optional title: string
    • Optional buttons: ConfirmButton[]

    Returns Promise<boolean | ConfirmButton>

  • Get unmodified current image data url.

    Returns string

  • Remove and dispose image layer given by argument layerOrIndex.

    Parameters

    • layerOrIndex: number | IImageLayer

      Image layer or image layer index or image layer name.

    Returns any

  • Remove and dispose all image layers.

    Returns any

  • Show a second toolbar specified by the toolbarKey argument.

    Example

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

    Parameters

    Returns Promise<void>

Properties

toggleSidebar: ((show?: boolean) => void)

Type declaration

    • (show?: boolean): void
    • Sets of toggles sidebar's panels visibility

      Parameters

      • Optional show: boolean

      Returns void

toolbarLayout: ImageToolbarLayout

Defines the layout of the toolbar.

Description

The full list of the viewer specific toolbar items:

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

Example

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

i18next instance.