changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/lib/dat/png.lisp

changeset 698: 96958d3eb5b0
parent: 2596311106ae
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
1 ;;; dat/png.lisp --- PNG image format
2 
3 ;;
4 
5 ;;; Code:
6 (in-package :dat/png)
7 
8 ;;;; Copyright (c) 2011-2014 jnjcc, Yste.org. All rights reserved.
9 ;;;;
10 ;;;; png backend for QR code symbol
11 
12 ;; (defun set-color (pngarray x y color)
13 ;; (setf (aref pngarray x y 0) color)
14 ;; (setf (aref pngarray x y 1) color)
15 ;; (setf (aref pngarray x y 2) color))
16 
17 ;; (defun symbol->png (symbol pixsize margin)
18 ;; "return the qr symbol written into a zpng:png object with PIXSIZE
19 ;; pixels for each module, and MARGIN pixels on all four sides"
20 ;; (with-slots (matrix modules) symbol
21 ;; (let* ((size (+ (* modules pixsize) (* margin 2)))
22 ;; (qrpng (make-instance 'zpng:png :width size :height size))
23 ;; (qrarray (zpng:data-array qrpng)))
24 ;; (dotimes (x size)
25 ;; (dotimes (y size)
26 ;; (if (and (<= margin x (- size margin 1))
27 ;; (<= margin y (- size margin 1)))
28 ;; (let ((i (floor (- x margin) pixsize))
29 ;; (j (floor (- y margin) pixsize)))
30 ;; (if (dark-module-p matrix i j)
31 ;; (set-color qrarray x y 0)
32 ;; (set-color qrarray x y 255)))
33 ;; ;; quiet zone
34 ;; (set-color qrarray x y 255))))
35 ;; qrpng)))
36 
37 ;; (defun encode-png (text &key (fpath "qrcode.png") (version 1) (level :level-m)
38 ;; (mode nil) (pixsize 9) (margin 8))
39 ;; (let ((symbol (encode-symbol text :version version :level level :mode mode)))
40 ;; (zpng:write-png (symbol->png symbol pixsize margin) fpath)))
41 
42 ;; (defun encode-png-stream (text stream &key (version 1) (level :level-m)
43 ;; (mode nil) (pixsize 9) (margin 8))
44 ;; (let ((symbol (encode-symbol text :version version :level level :mode mode)))
45 ;; (zpng:write-png-stream (symbol->png symbol pixsize margin) stream)))
46 
47 ;; (defun encode-png-bytes (bytes &key (fpath "kanji.png") (version 1)
48 ;; (level :level-m) (mode nil) (pixsize 9) (margin 8))
49 ;; (let ((symbol (encode-symbol-bytes bytes :version version :level level
50 ;; :mode mode)))
51 ;; (zpng:write-png (symbol->png symbol pixsize margin) fpath)))
52 
53 ;; (defun encode-png-bytes-stream (bytes stream &key (version 1) (level :level-m)
54 ;; (mode nil) (pixsize 9) (margin 8))
55 ;; (let ((symbol (encode-symbol-bytes bytes :version version :level level
56 ;; :mode mode)))
57 ;; (zpng:write-png-stream (symbol->png symbol pixsize margin) stream)))