From a67c19be85df49fd923b8175beb7f1c75c2e5c24 Mon Sep 17 00:00:00 2001 From: KonstantinLukaschenko Date: Thu, 22 Aug 2019 23:44:08 +0200 Subject: [PATCH] [blueimp-load-image] enhanced load image callback with metadata argument (#37848) * extended loadimagecallback with metadata argument. * lint. * extended unit test. * cleanup test. * polishing. --- .../blueimp-load-image-tests.ts | 8 ++++++-- types/blueimp-load-image/index.d.ts | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/types/blueimp-load-image/blueimp-load-image-tests.ts b/types/blueimp-load-image/blueimp-load-image-tests.ts index 112a407aa2..4ede678f09 100644 --- a/types/blueimp-load-image/blueimp-load-image-tests.ts +++ b/types/blueimp-load-image/blueimp-load-image-tests.ts @@ -1,7 +1,9 @@ -import loadImage from 'blueimp-load-image'; +import loadImage, { MetaData } from 'blueimp-load-image'; // Test image taken from package tests: https://github.com/blueimp/JavaScript-Load-Image/blob/master/test/test.js +// 2x1px JPEG (color white, with the Exif orientation flag set to 6 and the +// IPTC ObjectName (2:5) set to 'objectname'): const b64DataJPEG = '/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAASUkqAAgAAAABABIBAwABAAAA' + 'BgASAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAA8cAgUACm9iamVj' + @@ -20,7 +22,9 @@ const b64DataJPEG = '2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/v4ooooA/9k='; const imageUrlJPEG = 'data:image/jpeg;base64,' + b64DataJPEG; -loadImage(imageUrlJPEG, (canvas: HTMLCanvasElement): void => { +loadImage(imageUrlJPEG, (image: HTMLCanvasElement | HTMLImageElement, data?: MetaData): void => { + const canvas = image as HTMLCanvasElement; + console.log(data); canvas.toBlob((blob: Blob | null): void => { const url = canvas.toDataURL("image/png"); console.log(url); diff --git a/types/blueimp-load-image/index.d.ts b/types/blueimp-load-image/index.d.ts index 9258bd3791..a3f8bf2090 100644 --- a/types/blueimp-load-image/index.d.ts +++ b/types/blueimp-load-image/index.d.ts @@ -1,11 +1,28 @@ // Type definitions for blueimp-load-image 2.23 // Project: https://github.com/blueimp/JavaScript-Load-Image // Definitions by: Evan Kesten +// Konstantin Lukaschenko // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// -export type LoadImageCallback = (canvas: HTMLCanvasElement) => void; +export type LoadImageCallback = (image: HTMLCanvasElement | HTMLImageElement, data?: MetaData) => void; + +export interface Exif { + [tag: number]: number | string | string[]; +} + +export interface Iptc { + [tag: number]: number | string | string[]; +} + +export interface MetaData { + originalWidth?: number; + originalHeight?: number; + imageHead?: ArrayBuffer | Uint8Array; + exif?: Exif; + iptc?: Iptc; +} export interface BasicOptions { maxWidth?: number; maxHeight?: number;