Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoSign in
Socket

@leafer/platform

Package Overview
Dependencies
Maintainers
1
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@leafer/platform - npm Package Compare versions

Comparing version
1.12.4
to
2.0.0
+4
-4
package.json
{
"name": "@leafer/platform",
"version": "1.12.4",
"version": "2.0.0",
"description": "@leafer/platform",

@@ -25,8 +25,8 @@ "author": "Chao (Leafer) Wan",

"dependencies": {
"@leafer/data": "1.12.4",
"@leafer/debug": "1.12.4"
"@leafer/data": "2.0.0",
"@leafer/debug": "2.0.0"
},
"devDependencies": {
"@leafer/interface": "1.12.4"
"@leafer/interface": "2.0.0"
}
}

@@ -1,3 +0,4 @@

import { IPlatform, IObject, IBoundsData, ICanvasPattern, IMatrixData, ILeaferImagePatternPaint, ISizeData, ICanvasContext2D } from '@leafer/interface'
import { IPlatform, IObject, IBoundsData, ICanvasPattern, IMatrixData, ILeaferImagePatternPaint, ISizeData, ICanvasContext2D, IInterlace } from '@leafer/interface'
import { DataHelper } from '@leafer/data'
import { UnitConvertHelper } from '@leafer/math'

@@ -26,3 +27,3 @@

getRealURL(url: string): string {
const { prefix, suffix } = Platform.image
const { prefix, suffix } = image
if (suffix && !url.startsWith('data:') && !url.startsWith('blob:')) url += (url.includes("?") ? "&" : "?") + suffix

@@ -32,16 +33,31 @@ if (prefix && url[0] === '/') url = prefix + url

},
resize(image: any, width: number, height: number, xGap?: number, yGap?: number, clip?: IBoundsData, smooth?: boolean, opacity?: number, _filters?: IObject): any {
const canvas = Platform.origin.createCanvas(max(floor(width + (xGap || 0)), 1), max(floor(height + (yGap || 0)), 1),)
resize(view: any, width: number, height: number, xGap?: number, yGap?: number, clip?: IBoundsData, smooth?: boolean, opacity?: number, _filters?: IObject, interlace?: IInterlace): any {
const realWidth = max(floor(width + (xGap || 0)), 1), realHeight = max(floor(height + (yGap || 0)), 1)
let interlaceX: boolean, interlaceY: boolean, interlaceOffset: number
if (interlace && (interlaceOffset = UnitConvertHelper.number(interlace.offset, (interlaceX = interlace.type === 'x') ? width : height))) interlaceX || (interlaceY = true)
const canvas = Platform.origin.createCanvas(interlaceY ? realWidth * 2 : realWidth, interlaceX ? realHeight * 2 : realHeight)
const ctx: ICanvasContext2D = canvas.getContext('2d')
if (opacity) ctx.globalAlpha = opacity
ctx.imageSmoothingEnabled = smooth === false ? false : true // 平滑绘制
if (image) {
if (image.canUse(view)) {
if (clip) {
const scaleX = width / clip.width, scaleY = height / clip.height
ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY)
ctx.drawImage(image, 0, 0, image.width, image.height)
} else ctx.drawImage(image, 0, 0, width, height)
ctx.drawImage(view, 0, 0, view.width, view.height)
} else ctx.drawImage(view, 0, 0, width, height)
if (interlaceOffset) {
ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset - realWidth : realWidth, interlaceX ? realHeight : interlaceOffset - realHeight, realWidth, realHeight)
ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset : realWidth, interlaceX ? realHeight : interlaceOffset, realWidth, realHeight)
}
}
return canvas
},
canUse(view: any): boolean {
return view && view.width && !view.__closed // __closed 为内部标记已销毁
},
setPatternTransform(pattern: ICanvasPattern, transform?: IMatrixData, paint?: ILeaferImagePatternPaint): void {

@@ -48,0 +64,0 @@ try {