插图与图像#
输入格式、复用、裁剪与图片框适配。所有素材由仓库内的合成图生成,不依赖外部下载。
输入格式#
PNG 位图#
导入 PNG 素材并指定物理宽度;输出页内保留完整图片。
picture = image(src="../assets/sample.png")placed = page.add(picture,size=(76 mm, auto), target=page.top_left, offset=(7 mm, 24 mm))frame = rect(size=(76 mm, 47.5 mm), fill="none", border_color="#435b72", border_width=0.35 mm)page.add(frame, target=placed.top_left)
源码:png.lay。
复现命令:laymesh validate examples/gallery/images/png.lay;laymesh render examples/gallery/images/png.lay -o png.png --dpi 150。
实测:有效:examples/gallery/images/png.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
JPEG 位图#
用相同布局导入 JPEG,观察有损编码素材进入页面后的实际效果。
picture = image(src="../assets/sample.jpg")placed = page.add(picture,size=(76 mm, auto), target=page.top_left, offset=(7 mm, 24 mm))frame = rect(size=(76 mm, 47.5 mm), fill="none", border_color="#435b72", border_width=0.35 mm)page.add(frame, target=placed.top_left)
源码:jpeg.lay。
复现命令:laymesh validate examples/gallery/images/jpeg.lay;laymesh render examples/gallery/images/jpeg.lay -o jpeg.png --dpi 150。
实测:有效:examples/gallery/images/jpeg.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
SVG 矢量素材#
导入安全 SVG 子集;图形在 SVG 和 PDF 导出时可继续保持矢量。
picture = image(src="../assets/sample.svg")placed = page.add(picture,size=(76 mm, auto), target=page.top_left, offset=(7 mm, 24 mm))frame = rect(size=(76 mm, 47.5 mm), fill="none", border_color="#435b72", border_width=0.35 mm)page.add(frame, target=placed.top_left)
源码:svg.lay。
复现命令:laymesh validate examples/gallery/images/svg.lay;laymesh render examples/gallery/images/svg.lay -o svg.png --dpi 150。
实测:有效:examples/gallery/images/svg.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
8 位灰度 TIFF#
演示单页、单通道 8 位 TIFF 输入;源图片由生成脚本确定。
picture = image(src="../assets/gray8.tiff")placed = page.add(picture,size=(76 mm, auto), target=page.top_left, offset=(7 mm, 24 mm))frame = rect(size=(76 mm, 47.5 mm), fill="none", border_color="#435b72", border_width=0.35 mm)page.add(frame, target=placed.top_left)
源码:tiff-gray.lay。
复现命令:laymesh validate examples/gallery/images/tiff-gray.lay;laymesh render examples/gallery/images/tiff-gray.lay -o tiff-gray.png --dpi 150。
实测:有效:examples/gallery/images/tiff-gray.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
8 位 RGB TIFF#
演示单页、三通道 8 位 TIFF 输入。
picture = image(src="../assets/rgb8.tiff")placed = page.add(picture,size=(76 mm, auto), target=page.top_left, offset=(7 mm, 24 mm))frame = rect(size=(76 mm, 47.5 mm), fill="none", border_color="#435b72", border_width=0.35 mm)page.add(frame, target=placed.top_left)
源码:tiff-rgb.lay。
复现命令:laymesh validate examples/gallery/images/tiff-rgb.lay;laymesh render examples/gallery/images/tiff-rgb.lay -o tiff-rgb.png --dpi 150。
实测:有效:examples/gallery/images/tiff-rgb.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
实例与裁剪#
同一素材重复放置#
同一 image 定义放在两个位置并使用不同显示宽度,实例互不影响。
picture = image(src="../assets/sample.png")first = page.add(picture,size=(62 mm, auto), target=page.top_left, offset=(7 mm, 26 mm))page.add(picture,size=(34 mm, auto), target=first.top_right, offset=(9 mm, 0 mm))
源码:reuse.lay。
复现命令:laymesh validate examples/gallery/images/reuse.lay;laymesh render examples/gallery/images/reuse.lay -o reuse.png --dpi 150。
实测:有效:examples/gallery/images/reuse.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
独立裁剪#
右侧实例从源图裁取部分区域,左侧仍显示完整源图。
picture = image(src="../assets/sample.png")first = page.add(picture,size=(53 mm, auto), target=page.top_left, offset=(7 mm, 26 mm))page.add(picture,size=(44 mm, auto), crop=box(offset=(0.4, 0), size=(0.6, 1)), target=first.top_right, offset=(9 mm, 0 mm))
源码:crop.lay。
复现命令:laymesh validate examples/gallery/images/crop.lay;laymesh render examples/gallery/images/crop.lay -o crop.png --dpi 150。
实测:有效:examples/gallery/images/crop.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
适配模式#
contain 完整显示#
图像等比缩放并完整落在框内,框中可能留空。
picture = image(src="../assets/sample.png")frame = rect(size=(49 mm, 44 mm), fill="#e1e8ef", border_color="#39546b", border_width=0.4 mm)placed = page.add(frame, target=page.top_left, offset=(13 mm, 26 mm))page.add(picture,size=(49 mm, 44 mm), fit=contain, target=placed.top_left)
源码:fit-contain.lay。
复现命令:laymesh validate examples/gallery/images/fit-contain.lay;laymesh render examples/gallery/images/fit-contain.lay -o fit-contain.png --dpi 150。
实测:有效:examples/gallery/images/fit-contain.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
cover 填满并裁切#
图像等比填满目标框,超出的部分由框裁掉。
picture = image(src="../assets/sample.png")frame = rect(size=(49 mm, 44 mm), fill="#e1e8ef", border_color="#39546b", border_width=0.4 mm)placed = page.add(frame, target=page.top_left, offset=(13 mm, 26 mm))page.add(picture,size=(49 mm, 44 mm), fit=cover, target=placed.top_left)
源码:fit-cover.lay。
复现命令:laymesh validate examples/gallery/images/fit-cover.lay;laymesh render examples/gallery/images/fit-cover.lay -o fit-cover.png --dpi 150。
实测:有效:examples/gallery/images/fit-cover.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。
stretch 拉伸#
图像按框的宽高分别缩放,便于观察非等比变形。
picture = image(src="../assets/sample.png")frame = rect(size=(49 mm, 44 mm), fill="#e1e8ef", border_color="#39546b", border_width=0.4 mm)placed = page.add(frame, target=page.top_left, offset=(13 mm, 26 mm))page.add(picture,size=(49 mm, 44 mm), fit=stretch, target=placed.top_left)
源码:fit-stretch.lay。
复现命令:laymesh validate examples/gallery/images/fit-stretch.lay;laymesh render examples/gallery/images/fit-stretch.lay -o fit-stretch.png --dpi 150。
实测:有效:examples/gallery/images/fit-stretch.lay(120 × 80 mm,3 个顶层实例);PNG 709 × 472 px,150 DPI;警告:无。