changelog shortlog graph tags branches changeset files file revisions raw help

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