* Render an embedded DIB bitmap from EMF.
( imageData: ImageData, wrapper: HTMLElement, ctx: RenderContext, mediaPath: string )
| 439 | * Render an embedded DIB bitmap from EMF. |
| 440 | */ |
| 441 | function renderEmfBitmap( |
| 442 | imageData: ImageData, |
| 443 | wrapper: HTMLElement, |
| 444 | ctx: RenderContext, |
| 445 | mediaPath: string |
| 446 | ): void { |
| 447 | const cacheKey = `${mediaPath}:emf-bitmap` |
| 448 | const cached = ctx.mediaUrlCache.get(cacheKey) |
| 449 | if (cached) { |
| 450 | wrapper.appendChild(createFillImage(cached)) |
| 451 | return |
| 452 | } |
| 453 | |
| 454 | const canvas = document.createElement('canvas') |
| 455 | canvas.width = imageData.width |
| 456 | canvas.height = imageData.height |
| 457 | const canvasCtx = canvas.getContext('2d') |
| 458 | if (!canvasCtx) return |
| 459 | |
| 460 | canvasCtx.putImageData(imageData, 0, 0) |
| 461 | canvas.toBlob((blob) => { |
| 462 | if (!blob) return |
| 463 | const url = URL.createObjectURL(blob) |
| 464 | ctx.mediaUrlCache.set(cacheKey, url) |
| 465 | wrapper.appendChild(createFillImage(url)) |
| 466 | }, 'image/png') |
| 467 | } |
| 468 | |
| 469 | /** |
| 470 | * Create an <img> element that fills its container. |
no test coverage detected