[cl-gd-devel] [question] change of colors when tiling an image
Hans Hübner
hans.huebner at gmail.com
Thu Mar 11 18:02:15 UTC 2010
Kai,
I guess your tiles are written in palette mode. Have a look at the
optional TRUE-COLOR-P argument that WITH-IMAGE provides.
-Hans
On Thu, Mar 11, 2010 at 18:29, <colimal at mails.selgrad.org> wrote:
> Hello all :)
>
> I'm using cl-gd to generate tiles of a larger image. I'm generating a set of
> tiles of each, e.g. 256x256 pixels, from an input image that is much larger,
> e.g. 4096x2048.
>
> When using "debug-images" (pngs) with few colors and large areas of the same
> color this works well. However, when I want to tile a png file with higher
> frequencies and lots of colors the resulting tile images seem to be resampled
> somehow, with a huge loss of quality.
>
> Here is part of my code:
>
> (with-image-from-file (src input-name)
> (let ((width (image-width src))
> (height (image-height src)))
>
> ;; store a single tile
> (defun generate-tile (x y)
> "Generates a single tile. The index of which is given in x and y"
> (with-image (dest size size)
> (copy-image src dest (* x size) (* y size) 0 0 size size)
> (write-image-to-file (concatenate 'string output-base "-" (write-to-string x) "-" (write-to-string y) "." ext)
> :image dest :if-exists :supersede :compression-level 0)))
>
> ;; master's actual code
> (let ((count-x (ceiling (/ width size)))
> (count-y (ceiling (/ height size))))
> (format t "Slicing up ~s (~d x ~d) into (~d x ~d) tiles of size (~d x ~d).~%" input-name width height count-x count-y size size)
> (dotimes (x count-x)
> (dotimes (y count-y)
> (generate-tile x y))))))
>
> As you can see, I don't compress the image (doesn't change, if I leave the
> compression key out), and only copy a given section to the output image.
> The version of cl-gd I'm using is 0.5.7, the version of is libgd 2.0.0.
>
> I would appreciate if someone would hint me to what I'm missing :)
>
> Thanks in advance,
> Kai.
>
>
> _______________________________________________
> cl-gd-devel site list
> cl-gd-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/cl-gd-devel
>
More information about the Cl-gd-devel
mailing list