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}