@mapcatch/util 1.0.9 → 1.0.10-a
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/CHANGELOG.md +8 -1
- package/dist/catchUtil.min.esm.js +9906 -10852
- package/dist/catchUtil.min.js +25 -27
- package/package.json +1 -2
- package/src/constants/bmap_types.js +2 -2
- package/src/constants/crs_types.js +22 -0
- package/src/constants/default_layers.js +9 -9
- package/src/constants/index.js +3 -2
- package/src/constants/layer_folders.js +4 -4
- package/src/constants/measurement_fields.js +198 -0
- package/src/gl-operations/shaders/fragment/convertDem.js +2 -2
- package/src/gl-operations/shaders/fragment/convolutionSmooth.js +2 -2
- package/src/gl-operations/shaders/fragment/diffCalc.js +2 -2
- package/src/gl-operations/shaders/fragment/drawResult.js +2 -2
- package/src/gl-operations/shaders/fragment/hillshading/hsAdvAmbientShadows.js +2 -2
- package/src/gl-operations/shaders/fragment/hillshading/hsAdvFinalBaselayer.js +2 -2
- package/src/gl-operations/shaders/fragment/hillshading/hsAdvNormals.js +2 -2
- package/src/gl-operations/shaders/fragment/hillshading/hsAdvSoftShadows.js +2 -2
- package/src/gl-operations/shaders/fragment/interpolateColor.js +2 -2
- package/src/gl-operations/shaders/fragment/interpolateColorOnly.js +2 -2
- package/src/gl-operations/shaders/fragment/interpolateValue.js +2 -2
- package/src/gl-operations/shaders/fragment/multiAnalyze1Calc.js +2 -2
- package/src/gl-operations/shaders/fragment/multiAnalyze2Calc.js +2 -2
- package/src/gl-operations/shaders/fragment/multiAnalyze3Calc.js +2 -2
- package/src/gl-operations/shaders/fragment/multiAnalyze4Calc.js +2 -2
- package/src/gl-operations/shaders/fragment/multiAnalyze5Calc.js +2 -2
- package/src/gl-operations/shaders/fragment/multiAnalyze6Calc.js +2 -2
- package/src/gl-operations/shaders/vertex/double.js +2 -2
- package/src/gl-operations/shaders/vertex/multi3.js +2 -2
- package/src/gl-operations/shaders/vertex/multi4.js +2 -2
- package/src/gl-operations/shaders/vertex/multi5.js +2 -2
- package/src/gl-operations/shaders/vertex/multi6.js +2 -2
- package/src/gl-operations/shaders/vertex/singleNotTransformed.js +2 -2
- package/src/index.js +0 -2
- package/src/util.js +31 -51
- package/src/constants/map_view_mode.js +0 -10
- package/src/exif/exif.js +0 -37
- package/src/exif/gps_tags.js +0 -33
- package/src/exif/ifd1_tags.js +0 -22
- package/src/exif/index.js +0 -33
- package/src/exif/iptc_field_map.js +0 -12
- package/src/exif/parse_image.js +0 -445
- package/src/exif/string_values.js +0 -137
- package/src/exif/tags.js +0 -75
- package/src/exif/tiff_tags.js +0 -35
- package/src/exif/util.js +0 -108
- package/src/image-size/detector.js +0 -24
- package/src/image-size/fromFile.js +0 -55
- package/src/image-size/index.js +0 -2
- package/src/image-size/lookup.js +0 -37
- package/src/image-size/types/bmp.js +0 -10
- package/src/image-size/types/cur.js +0 -16
- package/src/image-size/types/dds.js +0 -10
- package/src/image-size/types/gif.js +0 -11
- package/src/image-size/types/heif.js +0 -35
- package/src/image-size/types/icns.js +0 -112
- package/src/image-size/types/ico.js +0 -74
- package/src/image-size/types/index.js +0 -43
- package/src/image-size/types/j2c.js +0 -11
- package/src/image-size/types/jp2.js +0 -22
- package/src/image-size/types/jpg.js +0 -157
- package/src/image-size/types/ktx.js +0 -18
- package/src/image-size/types/png.js +0 -36
- package/src/image-size/types/pnm.js +0 -74
- package/src/image-size/types/psd.js +0 -10
- package/src/image-size/types/svg.js +0 -100
- package/src/image-size/types/tga.js +0 -14
- package/src/image-size/types/tiff.js +0 -92
- package/src/image-size/types/utils.js +0 -83
- package/src/image-size/types/webp.js +0 -67
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
const decoder = new TextDecoder()
|
|
2
|
-
export const toUTF8String = (
|
|
3
|
-
input,
|
|
4
|
-
start = 0,
|
|
5
|
-
end = input.length,
|
|
6
|
-
) => decoder.decode(input.slice(start, end))
|
|
7
|
-
|
|
8
|
-
export const toHexString = (input, start = 0, end = input.length) =>
|
|
9
|
-
input
|
|
10
|
-
.slice(start, end)
|
|
11
|
-
.reduce((memo, i) => memo + ('0' + i.toString(16)).slice(-2), '')
|
|
12
|
-
|
|
13
|
-
export const readInt16LE = (input, offset = 0) => {
|
|
14
|
-
const val = input[offset] + input[offset + 1] * 2 ** 8
|
|
15
|
-
return val | ((val & (2 ** 15)) * 0x1fffe)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const readUInt16BE = (input, offset = 0) =>
|
|
19
|
-
input[offset] * 2 ** 8 + input[offset + 1]
|
|
20
|
-
|
|
21
|
-
export const readUInt16LE = (input, offset = 0) =>
|
|
22
|
-
input[offset] + input[offset + 1] * 2 ** 8
|
|
23
|
-
|
|
24
|
-
export const readUInt24LE = (input, offset = 0) =>
|
|
25
|
-
input[offset] + input[offset + 1] * 2 ** 8 + input[offset + 2] * 2 ** 16
|
|
26
|
-
|
|
27
|
-
export const readInt32LE = (input, offset = 0) =>
|
|
28
|
-
input[offset] +
|
|
29
|
-
input[offset + 1] * 2 ** 8 +
|
|
30
|
-
input[offset + 2] * 2 ** 16 +
|
|
31
|
-
(input[offset + 3] << 24)
|
|
32
|
-
|
|
33
|
-
export const readUInt32BE = (input, offset = 0) =>
|
|
34
|
-
input[offset] * 2 ** 24 +
|
|
35
|
-
input[offset + 1] * 2 ** 16 +
|
|
36
|
-
input[offset + 2] * 2 ** 8 +
|
|
37
|
-
input[offset + 3]
|
|
38
|
-
|
|
39
|
-
export const readUInt32LE = (input, offset = 0) =>
|
|
40
|
-
input[offset] +
|
|
41
|
-
input[offset + 1] * 2 ** 8 +
|
|
42
|
-
input[offset + 2] * 2 ** 16 +
|
|
43
|
-
input[offset + 3] * 2 ** 24
|
|
44
|
-
|
|
45
|
-
// Abstract reading multi-byte unsigned integers
|
|
46
|
-
const methods = {
|
|
47
|
-
readUInt16BE,
|
|
48
|
-
readUInt16LE,
|
|
49
|
-
readUInt32BE,
|
|
50
|
-
readUInt32LE,
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export function readUInt(
|
|
54
|
-
input,
|
|
55
|
-
bits,
|
|
56
|
-
offset,
|
|
57
|
-
isBigEndian,
|
|
58
|
-
) {
|
|
59
|
-
offset = offset || 0
|
|
60
|
-
const endian = isBigEndian ? 'BE' : 'LE'
|
|
61
|
-
const methodName = 'readUInt' + bits + endian
|
|
62
|
-
return methods[methodName](input, offset)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function readBox(buffer, offset) {
|
|
66
|
-
if (buffer.length - offset < 4) return
|
|
67
|
-
const boxSize = readUInt32BE(buffer, offset)
|
|
68
|
-
if (buffer.length - offset < boxSize) return
|
|
69
|
-
return {
|
|
70
|
-
name: toUTF8String(buffer, 4 + offset, 8 + offset),
|
|
71
|
-
offset,
|
|
72
|
-
size: boxSize,
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export function findBox(buffer, boxName, offset) {
|
|
77
|
-
while (offset < buffer.length) {
|
|
78
|
-
const box = readBox(buffer, offset)
|
|
79
|
-
if (!box) break
|
|
80
|
-
if (box.name === boxName) return box
|
|
81
|
-
offset += box.size
|
|
82
|
-
}
|
|
83
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// based on https://developers.google.com/speed/webp/docs/riff_container
|
|
2
|
-
import { toHexString, toUTF8String, readInt16LE, readUInt24LE } from './utils'
|
|
3
|
-
|
|
4
|
-
function calculateExtended(input) {
|
|
5
|
-
return {
|
|
6
|
-
height: 1 + readUInt24LE(input, 7),
|
|
7
|
-
width: 1 + readUInt24LE(input, 4),
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function calculateLossless(input) {
|
|
12
|
-
return {
|
|
13
|
-
height:
|
|
14
|
-
1 +
|
|
15
|
-
(((input[4] & 0xf) << 10) | (input[3] << 2) | ((input[2] & 0xc0) >> 6)),
|
|
16
|
-
width: 1 + (((input[2] & 0x3f) << 8) | input[1]),
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function calculateLossy(input) {
|
|
21
|
-
// `& 0x3fff` returns the last 14 bits
|
|
22
|
-
// TO-DO: include webp scaling in the calculations
|
|
23
|
-
return {
|
|
24
|
-
height: readInt16LE(input, 8) & 0x3fff,
|
|
25
|
-
width: readInt16LE(input, 6) & 0x3fff,
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export const WEBP = {
|
|
30
|
-
validate(input) {
|
|
31
|
-
const riffHeader = 'RIFF' === toUTF8String(input, 0, 4)
|
|
32
|
-
const webpHeader = 'WEBP' === toUTF8String(input, 8, 12)
|
|
33
|
-
const vp8Header = 'VP8' === toUTF8String(input, 12, 15)
|
|
34
|
-
return riffHeader && webpHeader && vp8Header
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
calculate(input) {
|
|
38
|
-
const chunkHeader = toUTF8String(input, 12, 16)
|
|
39
|
-
input = input.slice(20, 30)
|
|
40
|
-
|
|
41
|
-
// Extended webp stream signature
|
|
42
|
-
if (chunkHeader === 'VP8X') {
|
|
43
|
-
const extendedHeader = input[0]
|
|
44
|
-
const validStart = (extendedHeader & 0xc0) === 0
|
|
45
|
-
const validEnd = (extendedHeader & 0x01) === 0
|
|
46
|
-
if (validStart && validEnd) {
|
|
47
|
-
return calculateExtended(input)
|
|
48
|
-
} else {
|
|
49
|
-
// TODO: breaking change
|
|
50
|
-
throw new TypeError('Invalid WebP')
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Lossless webp stream signature
|
|
55
|
-
if (chunkHeader === 'VP8 ' && input[0] !== 0x2f) {
|
|
56
|
-
return calculateLossy(input)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Lossy webp stream signature
|
|
60
|
-
const signature = toHexString(input, 3, 6)
|
|
61
|
-
if (chunkHeader === 'VP8L' && signature !== '9d012a') {
|
|
62
|
-
return calculateLossless(input)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
throw new TypeError('Invalid WebP')
|
|
66
|
-
},
|
|
67
|
-
}
|