8 按行列分割图片
这一节,我们把调整好尺寸的图片分割成指定的rows行,columns列,每个行列单元格都存储一张分割后的小图片,需要的时候直接取出来使用即可。
行数和列数很好理解。但如果仅仅考虑分割图片,只需给出行列数去分割图片就可以。但是考虑到行列数需要被记住,后边便于使用。因此这里设置两个值来指向行数值和列数值。把值设置为全局绑定,如下:
(define rows 3) (define cols 3)
这里设置了行列的初始值,为了能够让用户设定行列数,这里需要定义两个函数来实现该功能。如下:
;设置单元格行数: (define (set-rows! num) (set! rows num)) ;设置单元格列数: (define (set-cols! num) (set! cols num))
这里函数名"set-rows!"后面有一个”!“,表明它是有副作用的函数。函数里边有对函数"set!"求值,它也是有副作用的。
接下来分割图片。
分割图片用