code wiki / (root) / nx_jpeg_probe.nx

nx_jpeg_probe.nx source

↩ module page · 37 lines · 1776 B

1// nx_jpeg_probe.nx -- Rule-2 verify: does nx_jpeg_decode_rgb decode a REAL 2// photo JPEG (person photo), and is it baseline? Prints rc + dims + 1st pixel. 3// license_tier: ORIGINAL 4import "nx_syscalls.nx" 5import "nx_jpeg_ascii.nx" 6 7func gp(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 8func gn(v: i64) -> i64 { 9 let bb: *u8 = sys_mmap(28) 10 var m: i64 = v 11 if m < 0 { sys_write(1, "-\x00" as *u8, 1); m = 0 - m } 12 let t: *u8 = sys_mmap(28) 13 var k: i64 = 0 14 if m == 0 { t[0] = 48 as u8; k = 1 } 15 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 16 var i: i64 = 0 17 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 18 sys_write(1, bb, k) 19 return 0 20} 21 22func main() -> i64 { 23 let szp: *i64 = sys_mmap(16) as *i64 24 let buf: *u8 = sys_read_file("knowledge/media/diora_baird/a5a3307c5482c87a34119ec185eb5fc53eb46bbdcdb1925c46d9f9f1b5e18a88.jpg\x00" as *u8, szp) 25 if (buf as i64) == 0 { gp("PROBE: no file\n\x00" as *u8); return 1 } 26 gp("PROBE bytes=\x00" as *u8); gn(szp[0]); gp("\n\x00" as *u8) 27 let pr: *i64 = sys_mmap(8) as *i64 28 let pw: *i64 = sys_mmap(8) as *i64 29 let ph: *i64 = sys_mmap(8) as *i64 30 let dr: i64 = nx_jpeg_decode_rgb(buf, szp[0], pr, pw, ph) 31 gp("PROBE rc=\x00" as *u8); gn(dr); gp(" (OK=\x00" as *u8); gn(NX_JPEG_ASCII_OK); gp(")\n\x00" as *u8) 32 if dr != NX_JPEG_ASCII_OK { gp("PROBE: decode failed (rc above)\n\x00" as *u8); return 2 } 33 let rgb: *u8 = pr[0] as *u8 34 gp("PROBE w=\x00" as *u8); gn(pw[0]); gp(" h=\x00" as *u8); gn(ph[0]); gp("\n\x00" as *u8) 35 gp("PROBE px0=\x00" as *u8); gn(rgb[0] as i64); gp(",\x00" as *u8); gn(rgb[1] as i64); gp(",\x00" as *u8); gn(rgb[2] as i64); gp("\n\x00" as *u8) 36 return 0 37}