@pixzle/core 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/block-utils.d.ts +15 -0
- package/dist/block-utils.js +24 -8
- package/dist/block-utils.js.map +1 -1
- package/dist/helpers.d.ts +14 -1
- package/dist/helpers.js +25 -0
- package/dist/helpers.js.map +1 -1
- package/dist/types.d.ts +8 -8
- package/package.json +1 -1
package/dist/block-utils.d.ts
CHANGED
|
@@ -32,6 +32,14 @@ export declare function calculateBlockRange(blockCounts: number[], targetIndex:
|
|
|
32
32
|
* @returns Array of block counts for each fragment
|
|
33
33
|
*/
|
|
34
34
|
export declare function calculateBlockCountsForCrossImages(totalBlocks: number, fragmentCount: number): number[];
|
|
35
|
+
/**
|
|
36
|
+
* Calculate block count for a single image
|
|
37
|
+
* @param width Image width
|
|
38
|
+
* @param height Image height
|
|
39
|
+
* @param blockSize Block size
|
|
40
|
+
* @returns Total block count (blockCountX * blockCountY)
|
|
41
|
+
*/
|
|
42
|
+
export declare function calculateBlockCount(width: number, height: number, blockSize: number): number;
|
|
35
43
|
/**
|
|
36
44
|
* Calculate block counts for each image
|
|
37
45
|
* @param images Array of ImageInfo objects
|
|
@@ -46,3 +54,10 @@ export declare function calculateBlockCountsPerImage(images: ImageInfo[], blockS
|
|
|
46
54
|
* @returns Total block count
|
|
47
55
|
*/
|
|
48
56
|
export declare function calculateTotalBlocks(images: ImageInfo[], blockSize: number): number;
|
|
57
|
+
/**
|
|
58
|
+
* Take the first n blocks from an array of blocks
|
|
59
|
+
* @param blocks Array of blocks
|
|
60
|
+
* @param count Number of blocks to take
|
|
61
|
+
* @returns Array of blocks with the specified count
|
|
62
|
+
*/
|
|
63
|
+
export declare function takeBlocks<T>(blocks: T[], count: number): T[];
|
package/dist/block-utils.js
CHANGED
|
@@ -4,8 +4,10 @@ exports.RGBA_CHANNELS = void 0;
|
|
|
4
4
|
exports.calculateBlockCounts = calculateBlockCounts;
|
|
5
5
|
exports.calculateBlockRange = calculateBlockRange;
|
|
6
6
|
exports.calculateBlockCountsForCrossImages = calculateBlockCountsForCrossImages;
|
|
7
|
+
exports.calculateBlockCount = calculateBlockCount;
|
|
7
8
|
exports.calculateBlockCountsPerImage = calculateBlockCountsPerImage;
|
|
8
9
|
exports.calculateTotalBlocks = calculateTotalBlocks;
|
|
10
|
+
exports.takeBlocks = takeBlocks;
|
|
9
11
|
/**
|
|
10
12
|
* Number of channels in RGBA format
|
|
11
13
|
*/
|
|
@@ -67,6 +69,17 @@ function calculateBlockCountsForCrossImages(totalBlocks, fragmentCount) {
|
|
|
67
69
|
}
|
|
68
70
|
return fragmentBlockCounts;
|
|
69
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Calculate block count for a single image
|
|
74
|
+
* @param width Image width
|
|
75
|
+
* @param height Image height
|
|
76
|
+
* @param blockSize Block size
|
|
77
|
+
* @returns Total block count (blockCountX * blockCountY)
|
|
78
|
+
*/
|
|
79
|
+
function calculateBlockCount(width, height, blockSize) {
|
|
80
|
+
const { blockCountX, blockCountY } = calculateBlockCounts(width, height, blockSize);
|
|
81
|
+
return blockCountX * blockCountY;
|
|
82
|
+
}
|
|
70
83
|
/**
|
|
71
84
|
* Calculate block counts for each image
|
|
72
85
|
* @param images Array of ImageInfo objects
|
|
@@ -74,10 +87,7 @@ function calculateBlockCountsForCrossImages(totalBlocks, fragmentCount) {
|
|
|
74
87
|
* @returns Array of block counts per image (x * y)
|
|
75
88
|
*/
|
|
76
89
|
function calculateBlockCountsPerImage(images, blockSize) {
|
|
77
|
-
return images.map((info) =>
|
|
78
|
-
const { blockCountX, blockCountY } = calculateBlockCounts(info.w, info.h, blockSize);
|
|
79
|
-
return blockCountX * blockCountY;
|
|
80
|
-
});
|
|
90
|
+
return images.map((info) => calculateBlockCount(info.w, info.h, blockSize));
|
|
81
91
|
}
|
|
82
92
|
/**
|
|
83
93
|
* Calculate total number of blocks from images
|
|
@@ -86,9 +96,15 @@ function calculateBlockCountsPerImage(images, blockSize) {
|
|
|
86
96
|
* @returns Total block count
|
|
87
97
|
*/
|
|
88
98
|
function calculateTotalBlocks(images, blockSize) {
|
|
89
|
-
return images.reduce((total, image) =>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
99
|
+
return images.reduce((total, image) => total + calculateBlockCount(image.w, image.h, blockSize), 0);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Take the first n blocks from an array of blocks
|
|
103
|
+
* @param blocks Array of blocks
|
|
104
|
+
* @param count Number of blocks to take
|
|
105
|
+
* @returns Array of blocks with the specified count
|
|
106
|
+
*/
|
|
107
|
+
function takeBlocks(blocks, count) {
|
|
108
|
+
return blocks.slice(0, count);
|
|
93
109
|
}
|
|
94
110
|
//# sourceMappingURL=block-utils.js.map
|
package/dist/block-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-utils.js","sourceRoot":"","sources":["../src/block-utils.ts"],"names":[],"mappings":";;;AAmBA,oDASC;AAQD,kDAUC;AAQD,gFAmCC;AAQD,
|
|
1
|
+
{"version":3,"file":"block-utils.js","sourceRoot":"","sources":["../src/block-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
import type { ManifestData } from "./types";
|
|
1
|
+
import type { ImageInfo, ManifestData } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Create a minimal ManifestData for single image restoration
|
|
4
|
+
* @param options - Options for the manifest
|
|
5
|
+
* @param options.blockSize - Block size used for fragmentation
|
|
6
|
+
* @param options.seed - Seed used for shuffling
|
|
7
|
+
* @param options.imageInfo - Image information (width and height)
|
|
8
|
+
* @returns ManifestData object
|
|
9
|
+
*/
|
|
10
|
+
export declare function createSingleImageManifest(options: {
|
|
11
|
+
blockSize: number;
|
|
12
|
+
seed: number;
|
|
13
|
+
imageInfo: ImageInfo;
|
|
14
|
+
}): ManifestData;
|
|
2
15
|
/**
|
|
3
16
|
* Encode file name to base64 for safe storage (cross-platform)
|
|
4
17
|
* @param name - Original file name
|
package/dist/helpers.js
CHANGED
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSingleImageManifest = createSingleImageManifest;
|
|
3
4
|
exports.encodeFileName = encodeFileName;
|
|
4
5
|
exports.decodeFileName = decodeFileName;
|
|
5
6
|
exports.generateFileName = generateFileName;
|
|
6
7
|
exports.generateFragmentFileName = generateFragmentFileName;
|
|
7
8
|
exports.generateRestoredFileName = generateRestoredFileName;
|
|
8
9
|
exports.generateRestoredOriginalFileName = generateRestoredOriginalFileName;
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
/**
|
|
12
|
+
* Create a minimal ManifestData for single image restoration
|
|
13
|
+
* @param options - Options for the manifest
|
|
14
|
+
* @param options.blockSize - Block size used for fragmentation
|
|
15
|
+
* @param options.seed - Seed used for shuffling
|
|
16
|
+
* @param options.imageInfo - Image information (width and height)
|
|
17
|
+
* @returns ManifestData object
|
|
18
|
+
*/
|
|
19
|
+
function createSingleImageManifest(options) {
|
|
20
|
+
return {
|
|
21
|
+
id: "manual",
|
|
22
|
+
version: "0.0.0",
|
|
23
|
+
timestamp: new Date().toISOString(),
|
|
24
|
+
config: {
|
|
25
|
+
blockSize: options.blockSize,
|
|
26
|
+
seed: options.seed,
|
|
27
|
+
prefix: constants_1.DEFAULT_FRAGMENTATION_CONFIG.PREFIX,
|
|
28
|
+
preserveName: false,
|
|
29
|
+
crossImageShuffle: false,
|
|
30
|
+
},
|
|
31
|
+
images: [options.imageInfo],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
9
34
|
/**
|
|
10
35
|
* Encode file name to base64 for safe storage (cross-platform)
|
|
11
36
|
* @param name - Original file name
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export interface ShuffleOptions {
|
|
2
|
-
/** Image paths (e.g., ["image1.png", "image2.png"]) */
|
|
3
|
-
|
|
2
|
+
/** Image sources - file paths or URLs (e.g., ["image1.png", "https://example.com/image2.png"]) */
|
|
3
|
+
images: string[];
|
|
4
4
|
/** Fragmentation config */
|
|
5
5
|
config?: FragmentationConfig;
|
|
6
6
|
/** Output directory (e.g., "./output/fragments") */
|
|
7
7
|
outputDir: string;
|
|
8
8
|
}
|
|
9
9
|
export interface RestoreOptions {
|
|
10
|
-
/** Image paths (e.g., ["fragment1.png", "fragment2.png"]) */
|
|
11
|
-
|
|
12
|
-
/** Manifest path (e.g., "./
|
|
13
|
-
|
|
14
|
-
/** Manifest data object (alternative to
|
|
10
|
+
/** Image sources - file paths or URLs (e.g., ["fragment1.png", "https://example.com/fragment2.png"]) */
|
|
11
|
+
images: string[];
|
|
12
|
+
/** Manifest source - file path or URL (e.g., "./manifest.json" or "https://example.com/manifest.json") */
|
|
13
|
+
manifest?: string;
|
|
14
|
+
/** Manifest data object (alternative to manifest) */
|
|
15
15
|
manifestData?: ManifestData;
|
|
16
16
|
/** Output directory (e.g., "./output/restored") */
|
|
17
17
|
outputDir: string;
|
|
@@ -25,7 +25,7 @@ export interface FragmentationConfig {
|
|
|
25
25
|
/** Prefix for fragment files (optional, default: "img") */
|
|
26
26
|
prefix?: string;
|
|
27
27
|
/** Random seed (auto-generated if not specified) */
|
|
28
|
-
seed?: number
|
|
28
|
+
seed?: number;
|
|
29
29
|
/** Preserve original file name (optional, default: false) */
|
|
30
30
|
preserveName?: boolean;
|
|
31
31
|
/** Shuffle blocks across all images instead of within each image independently (optional, default: false) */
|