image-in-browser
Version:
Package for encoding / decoding images, transforming images, applying filters, drawing primitives on images on the client side (no need for server Node.js)
66 lines • 2.23 kB
JavaScript
import { ChannelOrder } from '../color/channel-order.js';
export function getImageDataBytes(data, opt) {
var _a;
const order = opt === null || opt === void 0 ? void 0 : opt.order;
const inPlace = (_a = opt === null || opt === void 0 ? void 0 : opt.inPlace) !== null && _a !== void 0 ? _a : false;
if (order === undefined) {
return data.toUint8Array();
}
if (data.numChannels === 4) {
if (order === ChannelOrder.abgr ||
order === ChannelOrder.argb ||
order === ChannelOrder.bgra) {
const tempImage = inPlace ? data : data.clone();
if (order === ChannelOrder.abgr) {
for (const p of tempImage) {
const r = p.r;
const g = p.g;
const b = p.b;
const a = p.a;
p.r = a;
p.g = b;
p.b = g;
p.a = r;
}
}
else if (order === ChannelOrder.argb) {
for (const p of tempImage) {
const r = p.r;
const g = p.g;
const b = p.b;
const a = p.a;
p.r = a;
p.g = r;
p.b = g;
p.a = b;
}
}
else if (order === ChannelOrder.bgra) {
for (const p of tempImage) {
const r = p.r;
const g = p.g;
const b = p.b;
const a = p.a;
p.r = b;
p.g = g;
p.b = r;
p.a = a;
}
}
return tempImage.toUint8Array();
}
}
else if (data.numChannels === 3) {
if (order === ChannelOrder.bgr) {
const tempImage = inPlace ? data : data.clone();
for (const p of tempImage) {
const r = p.r;
p.r = p.b;
p.b = r;
}
return tempImage.toUint8Array();
}
}
return data.toUint8Array();
}
//# sourceMappingURL=image-data.js.map