diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/density-size-correction/resources/exify.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/density-size-correction/resources/exify.js')
-rw-r--r-- | testing/web-platform/tests/density-size-correction/resources/exify.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/testing/web-platform/tests/density-size-correction/resources/exify.js b/testing/web-platform/tests/density-size-correction/resources/exify.js new file mode 100644 index 0000000000..b6c22e196c --- /dev/null +++ b/testing/web-platform/tests/density-size-correction/resources/exify.js @@ -0,0 +1,39 @@ +function createImageWithMetadata({ + width, + height, + preferredWidth, + preferredHeight, + resolutionX, + resolutionY, + resolutionUnit, + orientation +}) { + const canvas = document.createElement('canvas') + canvas.width = width || 100 + canvas.height = height || 100 + const ctx = canvas.getContext('2d') + ctx.fillColor = 'green' + ctx.fillRect(0, 0, canvas.width, canvas.height) + const original = canvas.toDataURL('image/jpeg') + const root = {} + const exif = {} + if (orientation !== undefined) + root[piexif.ExifIFD.Orientation] = orientation + if (resolutionX !== undefined) + root[piexif.ImageIFD.XResolution] = Array.isArray(resolutionX) ? resolutionX : [resolutionX, 1] + if (resolutionY !== undefined) + root[piexif.ImageIFD.YResolution] = Array.isArray(resolutionY) ? resolutionY : [resolutionY, 1] + if (resolutionUnit !== undefined) + root[piexif.ImageIFD.ResolutionUnit] = resolutionUnit + if (preferredWidth !== undefined) + exif[piexif.ExifIFD.PixelXDimension] = preferredWidth + if (preferredHeight !== undefined) + exif[piexif.ExifIFD.PixelYDimension] = preferredHeight + const exifString = piexif.dump({'0th': root, 'Exif': exif}) + const newDataUrl = piexif.insert(exifString, original) + const image = new Image() + image.src = newDataUrl + return new Promise(resolve => { + image.onload = () => resolve(image); + }) +}
\ No newline at end of file |