image-wasm-for-war3
Advanced tools
Comparing version
{ | ||
"name": "image-wasm-for-war3", | ||
"version": "1.0.5", | ||
"version": "2.0.0-alpha.1", | ||
"description": "image process by wasm", | ||
"main": "index.js", | ||
"main": "src/index.js", | ||
"scripts": { | ||
@@ -24,2 +24,4 @@ "tsc": "tsc", | ||
"src/api.d.ts", | ||
"src/index.js", | ||
"src/index.d.ts", | ||
"src/blp.js", | ||
@@ -29,4 +31,2 @@ "src/blp.d.ts", | ||
"src/struct.d.ts", | ||
"index.js", | ||
"index.d.ts", | ||
"package.json", | ||
@@ -33,0 +33,0 @@ "README.md" |
@@ -19,3 +19,3 @@ # 简介 | ||
const fs = require("fs"); | ||
const { ImageType, encode } = require("../index"); | ||
const { ImageType, encode } = require("image-wasm-for-war3"); | ||
@@ -25,6 +25,15 @@ const data = new Uint8Array( | ||
); | ||
const image = { | ||
width: 100, | ||
height: 100, | ||
buffer: data.buffer, | ||
} | ||
encode(data.buffer, 100, 100, ImageType.Tga).then((tgaContent) => { | ||
encode(image, ImageType.Tga).then((tgaContent) => { | ||
fs.writeFileSync("test.tga", Buffer.from(tgaContent)); | ||
}); | ||
encode(image, ImageType.Blp1).then((blp1Content) => { | ||
fs.writeFileSync("test.blp", Buffer.from(blp1Content)); | ||
}); | ||
``` | ||
@@ -38,7 +47,9 @@ | ||
const data = new Uint8Array( | ||
new Array(100 * 100 * 4).fill(0).map((_, i) => i % 255) | ||
); | ||
decode(fs.readFileSync('test.tga'), ImageType.Tga).then((rgbaData) => { | ||
console.info(rgbaData.width); | ||
console.info(rgbaData.height); | ||
console.info(rgbaData.buffer); | ||
}); | ||
encode(fs.readFileSync('test.tga').buffer, ImageType.Tga).then((rgbaData) => { | ||
decode(fs.readFileSync('test.blp'), ImageType.Blp1).then((rgbaData) => { | ||
console.info(rgbaData.width); | ||
@@ -50,2 +61,15 @@ console.info(rgbaData.height); | ||
## resize | ||
```js | ||
const fs = require("fs"); | ||
const { ImageType, encode, decode, resize } = require("image-wasm-for-war3"); | ||
decode(fs.readFileSync('big.tga'), ImageType.Tga) | ||
.then((rgbaData) => resize(rgbaData, 50, 50)) | ||
.then(resizeImage => encode(resizeImage, ImageType.Tga)) | ||
.then((tgaContent) => { | ||
fs.writeFileSync("small.tga", Buffer.from(tgaContent)); | ||
}); | ||
``` | ||
## blp1的处理 | ||
@@ -59,3 +83,3 @@ | ||
// 生成一个 mimap是一个 质量是80 的blp1文件 | ||
const blpContent = await Blp1File.encode(resizeImage).encode(1, 80); | ||
const blpContent = await Blp1File.encode(resizeImage).encode(80, 1); | ||
// 保存文件 | ||
@@ -65,5 +89,5 @@ fs.writeFileSync('some blp path', Buffer.from(blpContent)); | ||
// 获取blp的第一张mimap数据 | ||
const blpImageData = await Blp1File.decode(fs.readFileSync('some blp path').buffer).getMimapData(0); | ||
const blpImageData = await Blp1File.decode(fs.readFileSync('some blp path')).getMimapData(0); | ||
// 编码成png | ||
const pngContent = await encode(blpImageData.buffer, blpImageData.width, blpImageData.height, ImageType.Png); | ||
const pngContent = await encode(blpImageData, ImageType.Png); | ||
// 保存成png | ||
@@ -70,0 +94,0 @@ fs.writeFileSync('some png path', Buffer.from(pngContent)); |
@@ -1,2 +0,2 @@ | ||
declare function decodeJpeg(buffer: ArrayBufferLike, callback: (err: any, decoded: { | ||
declare function decodeJpeg(buffer: ArrayBuffer, callback: (err: any, decoded: { | ||
width: number; | ||
@@ -7,10 +7,20 @@ height: number; | ||
declare function encodeJpeg(buffer: ArrayBufferLike, | ||
option: { width: number, height: number, quality: number }, | ||
declare function encodeJpeg(buffer: ArrayBuffer, | ||
option: { width: number, height: number, quality: number }, | ||
callback: (err: any, encoded: ArrayBuffer) => void); | ||
declare function resizeImage(buffer: ArrayBufferLike, | ||
option: { width: number, height: number, outWidth: number, outHeight: number }, | ||
callback: (err: any, encoded: ArrayBuffer) => void); | ||
declare function encodeImage(buffer: ArrayBuffer, | ||
option: { width: number, height: number, type: number }, | ||
callback: (err: any, encoded: ArrayBuffer) => void); | ||
export { decodeJpeg, encodeJpeg, resizeImage }; | ||
declare function decodeImage(buffer: ArrayBuffer, type: number, callback: (err: any, decoded: { | ||
width: number; | ||
height: number; | ||
buffer: ArrayBuffer; | ||
}) => void); | ||
declare function resizeImage(buffer: ArrayBuffer, | ||
option: { width: number, height: number, outWidth: number, outHeight: number }, | ||
callback: (err: any, encoded: ArrayBuffer) => void); | ||
export { decodeJpeg, encodeJpeg, encodeImage, decodeImage, resizeImage }; |
@@ -389,2 +389,3 @@ var Module = require('../dist/libimage'); | ||
Jpeg: 2, | ||
Blp1: 3, | ||
} | ||
@@ -391,0 +392,0 @@ |
@@ -0,1 +1,2 @@ | ||
/// <reference types="node" /> | ||
import { StringField, UInt32Field } from './struct'; | ||
@@ -44,3 +45,3 @@ export declare class Blp1Reader { | ||
view: DataView; | ||
buffer: ArrayBufferLike; | ||
buffer: ArrayBuffer; | ||
headerValue: { | ||
@@ -62,3 +63,3 @@ magic: string; | ||
}; | ||
constructor(buffer: ArrayBufferLike); | ||
constructor(buffer: ArrayBuffer | Buffer); | ||
get width(): number; | ||
@@ -150,3 +151,3 @@ get height(): number; | ||
}>; | ||
encode(mipsCount?: number, quality?: number): Promise<ArrayBuffer>; | ||
encode(quality?: number, mipsCount?: number): Promise<ArrayBuffer>; | ||
} | ||
@@ -205,3 +206,3 @@ export declare class Blp1File { | ||
}; | ||
static decode(buffer: ArrayBufferLike): Blp1Reader; | ||
static decode(buffer: ArrayBuffer | Buffer): Blp1Reader; | ||
static encode(image: { | ||
@@ -208,0 +209,0 @@ width: number; |
@@ -46,4 +46,4 @@ "use strict"; | ||
constructor(buffer) { | ||
this.buffer = buffer; | ||
const view = new DataView(buffer); | ||
this.buffer = new Uint8Array(buffer); | ||
const view = new DataView(this.buffer); | ||
const header = this.blpHeader.read(view, 0); | ||
@@ -224,3 +224,3 @@ this.view = view; | ||
} | ||
async encode(mipsCount = this.mipMapsCount - 1, quality = 90) { | ||
async encode(quality = 90, mipsCount = this.mipMapsCount - 1) { | ||
if (mipsCount > this.mipMapsCount) { | ||
@@ -227,0 +227,0 @@ throw new Error('mipsCount is too large'); |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
2698639
0.07%1491
2.62%111
27.59%2
100%