323 |
); |
); |
324 |
#------------------------------------------------------------------ |
#------------------------------------------------------------------ |
325 |
|
|
326 |
|
my $header = |
327 |
|
# SOI |
328 |
|
"\xFF\xD8". |
329 |
|
# JFIF |
330 |
|
"\xFF\xE0". |
331 |
|
"\x00\x0e\x41\x56\x49\x31\x00\x00\x00\x00\x00\x00\x00\x00". |
332 |
|
"\xff\xDD\x00\x04\x00\x00". |
333 |
|
# quantization table |
334 |
|
"\xFF\xDB". |
335 |
|
"\x00\x43\x00\x21\x16\x18". |
336 |
|
"\x1D\x18\x14\x21\x1D\x1B\x1D\x25". |
337 |
|
"\x23\x21\x27\x31\x53\x36\x31\x2D". |
338 |
|
"\x2D\x31\x65\x48\x4c\x3c\x53\x78". |
339 |
|
"\x6a\x7e\x7c\x76\x6a\x74\x72\x85". |
340 |
|
"\x95\xbf\xa2\x85\x8d\xb4\x8f\x72". |
341 |
|
"\x74\xa6\xe2\xa8\xb4\xc5\xcb\xd6". |
342 |
|
"\xd8\xd6\x80\xa0\xeb\xfb\xe8\xd0". |
343 |
|
"\xf9\xbf\xd2\xd6\xcd". |
344 |
|
# quantization table |
345 |
|
"\xff\xdb". |
346 |
|
"\x00\x43\x01\x23\x25\x25\x31\x2b\x31". |
347 |
|
"\x61\x36\x36\x61\xcd\x89\x74\x89". |
348 |
|
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd". |
349 |
|
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd". |
350 |
|
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd". |
351 |
|
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd". |
352 |
|
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd". |
353 |
|
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd". |
354 |
|
"\xcd\xcd". |
355 |
|
# Define huffman table (section B.2.4.1) |
356 |
|
"\xFF\xC4". # Marker |
357 |
|
"\x00\x1F". # Length (31 bytes) |
358 |
|
"\x00". # DC luminance, table 0 |
359 |
|
"\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00". |
360 |
|
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B". |
361 |
|
# Define huffman table (section B.2.4.1) |
362 |
|
"\xFF\xC4". # Marker |
363 |
|
"\x00\x1F". # Length (31 bytes) |
364 |
|
"\x01". # DC chrominance, table 1 |
365 |
|
"\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00". |
366 |
|
"\x00\x00\x00\x00". |
367 |
|
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B". |
368 |
|
# Define huffman table (section B.2.4.1) |
369 |
|
"\xFF\xC4". # Marker |
370 |
|
"\x00\xB5". # Length (181 bytes) |
371 |
|
"\x10". # AC luminance, table 0 |
372 |
|
"\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01\x7D". |
373 |
|
"\x01\x02\x03\x00\x04\x11\x05\x12". |
374 |
|
"\x21\x31\x41\x06\x13\x51\x61\x07\x22\x71\x14\x32". |
375 |
|
"\x81\x91\xA1\x08\x23\x42\xB1\xC1\x15\x52\xD1\xF0". |
376 |
|
"\x24\x33\x62\x72\x82\x09\x0A\x16\x17\x18\x19\x1A". |
377 |
|
"\x25\x26\x27\x28\x29\x2A\x34\x35\x36\x37\x38\x39". |
378 |
|
"\x3A\x43\x44\x45\x46\x47\x48\x49\x4A\x53\x54\x55". |
379 |
|
"\x56\x57\x58\x59\x5A\x63\x64\x65\x66\x67\x68\x69". |
380 |
|
"\x6A\x73\x74\x75\x76\x77\x78\x79\x7A\x83\x84\x85". |
381 |
|
"\x86\x87\x88\x89\x8A\x92\x93\x94\x95\x96\x97\x98". |
382 |
|
"\x99\x9A\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xB2". |
383 |
|
"\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xC2\xC3\xC4\xC5". |
384 |
|
"\xC6\xC7\xC8\xC9\xCA\xD2\xD3\xD4\xD5\xD6\xD7\xD8". |
385 |
|
"\xD9\xDA\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA". |
386 |
|
"\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA". |
387 |
|
#/* Define huffman table (section B.2.4.1) */ |
388 |
|
"\xFF\xC4". # Marker |
389 |
|
"\x00\xB5". # Length (181 bytes) |
390 |
|
"\x11". # AC chrominance, table 1 |
391 |
|
"\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04". |
392 |
|
"\x00\x01\x02\x77". |
393 |
|
"\x00\x01\x02\x03\x11\x04\x05\x21". |
394 |
|
"\x31\x06\x12\x41\x51\x07\x61\x71\x13\x22\x32\x81". |
395 |
|
"\x08\x14\x42\x91\xA1\xB1\xC1\x09\x23\x33\x52\xF0". |
396 |
|
"\x15\x62\x72\xD1\x0A\x16\x24\x34\xE1\x25\xF1\x17". |
397 |
|
"\x18\x19\x1A\x26\x27\x28\x29\x2A\x35\x36\x37\x38". |
398 |
|
"\x39\x3A\x43\x44\x45\x46\x47\x48\x49\x4A\x53\x54". |
399 |
|
"\x55\x56\x57\x58\x59\x5A\x63\x64\x65\x66\x67\x68". |
400 |
|
"\x69\x6A\x73\x74\x75\x76\x77\x78\x79\x7A\x82\x83". |
401 |
|
"\x84\x85\x86\x87\x88\x89\x8A\x92\x93\x94\x95\x96". |
402 |
|
"\x97\x98\x99\x9A\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9". |
403 |
|
"\xAA\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xC2\xC3". |
404 |
|
"\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xD2\xD3\xD4\xD5\xD6". |
405 |
|
"\xD7\xD8\xD9\xDA\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9". |
406 |
|
"\xEA\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA". |
407 |
|
# start of frame |
408 |
|
"\xff\xc0". |
409 |
|
"\x00\x11\x08". |
410 |
|
pack("nn", 120, 160). |
411 |
|
"\x03\x01\x21\x00\x02\x11\x01\x03\x11\x01". |
412 |
|
# |
413 |
|
"\xff\xda". |
414 |
|
"\x00\x0c\x03\x01\x00\x02\x11\x03\x11". |
415 |
|
"\x00\x3f\x00"; |
416 |
|
|
417 |
if ( $dump ) { |
if ( $dump ) { |
418 |
warn "## created JPEG header...\n"; |
warn "## created JPEG header...\n"; |