export function createPngBufferWithDimensions(params: { width: number; height: number }): Buffer {
const signature = Buffer.from([0 x89, 0 x50, 0 x4e, 0 x47, 0 x0d, 0 x0a, 0 x1a, 0 x0a]);
const ihdrLength = Buffer.from([0 x00, 0 x00, 0 x00, 0 x0d]);
const ihdrType = Buffer.from("IHDR" , "ascii" );
const ihdrData = Buffer.alloc(13 );
ihdrData.writeUInt32BE(params.width, 0 );
ihdrData.writeUInt32BE(params.height, 4 );
ihdrData[8 ] = 8 ;
ihdrData[9 ] = 6 ;
const ihdrCrc = Buffer.alloc(4 );
const iend = Buffer.from([
0 x00, 0 x00, 0 x00, 0 x00, 0 x49, 0 x45, 0 x4e, 0 x44, 0 xae, 0 x42, 0 x60, 0 x82,
]);
return Buffer.concat([signature, ihdrLength, ihdrType, ihdrData, ihdrCrc, iend]);
}
export function createJpegBufferWithDimensions(params: { width: number; height: number }): Buffer {
if (params.width > 0 xffff || params.height > 0 xffff) {
throw new Error("Synthetic JPEG helper only supports 16-bit dimensions" );
}
const app0 = Buffer.from([
0 xff, 0 xe0, 0 x00, 0 x10, 0 x4a, 0 x46, 0 x49, 0 x46, 0 x00, 0 x01, 0 x01, 0 x00, 0 x00, 0 x01, 0 x00, 0 x01,
0 x00, 0 x00,
]);
const sof0 = Buffer.from([
0 xff,
0 xc0,
0 x00,
0 x11,
0 x08,
params.height >> 8 ,
params.height & 0 xff,
params.width >> 8 ,
params.width & 0 xff,
0 x03,
0 x01,
0 x11,
0 x00,
0 x02,
0 x11,
0 x00,
0 x03,
0 x11,
0 x00,
]);
const sos = Buffer.from([
0 xff, 0 xda, 0 x00, 0 x0c, 0 x03, 0 x01, 0 x00, 0 x02, 0 x11, 0 x03, 0 x11, 0 x00, 0 x3f, 0 x00,
]);
return Buffer.concat([Buffer.from([0 xff, 0 xd8]), app0, sof0, sos, Buffer.from([0 xff, 0 xd9])]);
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland