Rasterize
更多信息和选项
- 表达式 expr 可以是图形、文字、单元、笔记本对象或任意其他表达式.
- Rasterize[nb] 给出与笔记本对象 nb 相关联的全部内容的栅格化版本.
- 可能被 Rasterize 返回的基本元素包括:
-
"BoundingBox" 栅格的边框信息 "Data" 栅格的像素值组成的数组 "Graphics" 代表栅格的图形对象 "Image" 代表栅格的图像对象 "RasterSize" 栅格像素的宽度和高度 "Regions" Annotation 结构指定的区域 - Rasterize[expr] 等价于 Rasterize[expr,"Image"],并用同样的图像尺寸且与 expr 的未栅格化显示近似的方式显示在笔记本中.
- 在默认屏幕分辨率 res 下以给定 size 显示的表达式将生成大小为
的栅格. - 对 Rasterize 给出下面的选项:
-
Background Automatic 使用的背景 BaselinePosition Automatic 如何与周围的文字基线对齐 ImageFormattingWidth $ImageFormattingWidth 栅格化表达式的封装宽度 ImageResolution $ImageResolution 栅格化的图像分辨率(每英寸点数) ImageSize Automatic 最后显示的图片大小(打印机点) LightDark Inherited 在浅色或深色模式下是否栅格化 RasterSize Automatic 栅格化的栅格尺寸(像素) - RasterSize 和 ImageResolution 决定栅格的粗糙度;ImageSize 决定最后显示图像的大小.
- 如果对 RasterSize 有确切设置,它将覆盖 ImageResolution 的任意明确设置.
- 当 RasterSize 或 ImageResolution 设置得很小时,图形将表现得粗糙,文本难以辨认. 也有可能存在与锯齿相关的伪影.
- Rasterize 的 ImageSize 和 Background 设置将覆盖 expr 中选项的设置.
- Background->None 产生一个具有透明背景的栅格.
- 如果没有明确设置大小或分辨率选项,则 Rasterize[expr,…] 将以通常在笔记本中显示的大小和分辨率对 expr 进行栅格化.
- Rasterize[expr,"RasterSize"] 得到 {w,h},其中 w 是栅格中像素的整体宽度,而 h 是它的整体高度.
- Rasterize[expr,"BoundingBox"] 得到 {w,h,dh},其中 w 是整体宽度, h 是整体高度,而 dh 是 expr 的内容的基线与边界框底部的位移.
- 由 Rasterize 生成的图像在不同的计算机系统之间略有不同,主要是由于字体和抗锯齿程序的不同所造成的.
- 由 Rasterize[g,"BoundingBox"] 生成的结果取决于由于不同计算机系统之间的差异导致的字体特点的具体细节.
- Rasterize[expr,"Regions"] 用 {{a1,type1}->reg1,{a2,type2}->reg2,…} 形式给出规则列表,其中每个规则 {ai,typei}->regi 与 expr 中的形式为 Annotation[expr,ai,typei] 的注释相关联,或与被自动识别为注释的对象相关联,如 Hyperlink 或 Tooltip. regi 用 {{xmin,ymin},{xmax,ymax}} 形式给出像素位置,其中 y 坐标从上到下,与 HTML 的 coords 属性成镜像关系.
- 默认设置 LightDarkInherited 会使用运行计算的笔记本的默认浅色/深色设置. 若计算并非从特定笔记本启动,则采用笔记本前端的默认浅色/深色设置.
范例
打开所有单元 关闭所有单元基本范例 (3)
Rasterize[[image], RasterSize -> 15]Rasterize[x ^ 2 + y ^ 2, RasterSize -> 75, ImageSize -> 200]Rasterize[Graphics3D[Cylinder[], ImageSize -> Small], ImageResolution -> 36, Background -> StandardOrange]范围 (10)
Rasterize[Graphics3D[Sphere[]], RasterSize -> 150, ImageSize -> 150]Head[%]Rasterize[Grid@Table[x, {5}, {10}], "BoundingBox"]Rasterize[Grid@Table[x, {5}, {10}], "Data", LightDark -> "Light"]//ShortGraphics[Raster[%, Automatic, {0, 255}]]Rasterize[Grid@Table[x, {5}, {10}], "Graphics", LightDark -> "Light"]Head[%]Rasterize[Grid@Table[x, {5}, {10}], "RasterSize"]Rasterize[PolarPlot[Sin[3t], {t, 0, Pi}, ImageSize -> Tiny],
{"Graphics", "RasterSize"}]用 Annotation 来定义区域:
e = Graphics[{Red, Annotation[Disk[], "Red", "Region"], Blue, Annotation[Disk[{3, 0}], "Blue", "Region"]}, ImageSize -> 100]Rasterize[e, "Regions"]Show[Rasterize[e], Graphics[{FaceForm[], EdgeForm[ThemeColor["Foreground"]], Rectangle@@Last@#& /@ Rasterize[e, "Regions"]}], ImageSize -> 100]Rasterize[Style[x ^ 2 + y ^ 2, 50], Background -> StandardBlue]Rasterize[Style[x ^ 2 + y ^ 2, 50], ImageResolution -> 20]Rasterize[Style[x ^ 2 + y ^ 2, 50], RasterSize -> 100]RasterSize 重载 ImageResolution:
Rasterize[Style[x ^ 2 + y ^ 2, 50], RasterSize -> 100, ImageResolution -> 20]选项 (14)
Background (2)
Rasterize[Graphics3D[Cylinder[]], ImageSize -> 120, Background -> StandardGreen]Show[Graphics[{StandardMagenta, Rectangle[Scaled[{0, 0}], Scaled[{1, 1}]]}], Rasterize[Graphics3D[Cylinder[]]], ImageSize -> 120]通过设置 Background->None 使背景变成透明:
Show[Graphics[{StandardMagenta, Rectangle[Scaled[{0, 0}], Scaled[{1, 1}]]}], Rasterize[Graphics3D[Cylinder[]], Background -> None], ImageSize -> 120]ImageFormattingWidth (2)
ImageResolution (3)
Rasterize[Style["Text", 40]]
Options[%, ImageResolution]用 ImageResolution 指定所需的分辨率:
Rasterize[Style["Text", 40], ImageResolution -> 300]
Options[%, ImageResolution]Rasterize[Style["Text", 40], ImageResolution -> 30]图像分辨率会影响栅格大小,但不会影响显示出来的表达式的大小:
Rasterize[Style["Text", 40], "Image", ImageResolution -> #]& /@ {50, 100, 200}Rasterize[Style["Text", 40], "RasterSize", ImageResolution -> #]& /@ {50, 100, 200}Rasterize[Style["Text", 40], "BoundingBox", ImageResolution -> #]& /@ {50, 100, 200}RasterSize 覆盖 ImageResolution:
Rasterize[Style[x ^ 2 + y ^ 2, 50], RasterSize -> 100, ImageResolution -> 20]Rasterize[Style[x ^ 2 + y ^ 2, 50], ImageResolution -> 20, RasterSize -> Automatic]ImageSize (2)
list = Graphics[Triangle[], ImageSize -> #]& /@ {80, 100, 120}Rasterize /@ list用 ImageSize 选项设置特定的显示尺寸:
Rasterize[#, ImageSize -> 40]& /@ listImageSize 选项会覆盖要栅格化的表达式以前所有的设置:
g = Plot[x Sin[x], {x, 0, 1}, ImageSize -> 300]Rasterize[g, ImageSize -> #]& /@ {100, 200}ImageDimensions /@ %如果表达式没有可缩放的显示尺寸,则 ImageSize 仅设置最终的显示尺寸:
Rasterize[Style["Text", 40], ImageSize -> #]& /@ {100, 200}ImageDimensions /@ %LightDark (2)
Rasterize["abc", LightDark -> "Light"]Rasterize["abc", LightDark -> "Dark"]LightDarkSwitched 遵循 LightDark 选项的设置:
g = Graphics[{LightDarkSwitched[Red, Green], Disk[]}];
{Rasterize[g, LightDark -> "Light"], Rasterize[g, LightDark -> "Dark"]}RasterSize (3)
Rasterize[Style["Text", 40], LightDark -> "Light"]
ImageDimensions[%]用 RasterSizew 明确指定图像的宽度:
Rasterize[Style["Text", 40], RasterSize -> 100, LightDark -> "Light"]
ImageDimensions[%]用 RasterSize{w,h} 指定宽度和高度:
Rasterize[Style["Text", 40], RasterSize -> {100, 60}, LightDark -> "Light"]
ImageDimensions[%]Table[Rasterize[Style[x ^ 2 + y ^ 2, 40], RasterSize -> r], {r, {30, 50, 200}}]RasterSize 覆盖 ImageResolution. 使用默认的 RasterSize:
Rasterize[Style[x ^ 2 + y ^ 2, 50], ImageResolution -> 20]ImageDimensions[%]指定 RasterSize:
Rasterize[Style[x ^ 2 + y ^ 2, 50], ImageResolution -> 20, RasterSize -> 100]ImageDimensions[%]应用 (3)
txt = Import["ExampleData/USConstitution.txt"];Rasterize[Text@StringTake[txt, 1000], RasterSize -> 600, ImageSize -> 300, Background -> StandardBlue]nb = Import["ExampleData/document.nb"];Rasterize[nb, ImageSize -> 300]lines[Antialiasing -> a_] := Table[Show[Rasterize[Graphics[Style[Line[{{0, 0}, {x, 1}}], Antialiasing -> a]], Background -> None, RasterSize -> 20, ImageSize -> 20], Frame -> True, FrameTicks -> False, GridLines -> Function[{m, M}, Range[Floor[m], Ceiling[M]]], GridLinesStyle -> Directive[ThemeColor["Foreground"], Opacity[.25]], ImageSize -> 100], {x, 6}]lines[Antialiasing -> True]lines[Antialiasing -> False]属性和关系 (2)
通过改变图形的 ImageSize,而不是放大图形,使用自定义的 ImageSize 选项,栅格化图形:
g = Graphics[Text[Style["Some text", FontSize -> 20], {0, 0}], Background -> StandardOrange, ImageSize -> 80];Grid[{{g, Rasterize[g, ImageSize -> 160]}}]Grid[{{g, Rasterize[Text[g], ImageSize -> 160]}}]Cell 表达式的栅格化以 Wolfram 系统前端的方式显示单元内容:
Rasterize[Cell["Wolfram", "ExampleText"]]Rasterize[Cell["Wolfram", "ExampleText", FontSize -> 20, Background -> ThemeColor["Accent4"]]]Rasterize[Cell["Wolfram", "ExampleText", CellMargins -> 50, CellFrame -> True, CellFrameLabels -> {{"1", "2"}, {"3", "4"}}]]可能存在的问题 (1)
由于 ImageSize 以点为单位,所以可能不对应于生成图像的像素尺寸:
Rasterize[Graphics[Circle[]], ImageSize -> 40]//ImageDimensions要指定像素尺寸,请使用 RasterSize:
Rasterize[Graphics[Circle[]], RasterSize -> 40]//ImageDimensions互动范例 (1)
巧妙范例 (1)
txt = Import["ExampleData/USConstitution.txt"];Grid@Partition[Table[Rasterize[Framed[Style[StringTake[txt, {2000s + 1, 2000(s + 1)}], LineIndent -> 0], FrameMargins -> 10], RasterSize -> 100, ImageSize -> 50], {s, 0, Quotient[StringLength[txt], 2000] - 1}], 7]相关的工作流程
- 组合多幅图像
文本
Wolfram Research (2007),Rasterize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Rasterize.html (更新于 2025 年).
CMS
Wolfram 语言. 2007. "Rasterize." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/Rasterize.html.
APA
Wolfram 语言. (2007). Rasterize. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Rasterize.html 年
BibTeX
@misc{reference.wolfram_2026_rasterize, author="Wolfram Research", title="{Rasterize}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/Rasterize.html}", note=[Accessed: 31-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_rasterize, organization={Wolfram Research}, title={Rasterize}, year={2025}, url={https://reference.wolfram.com/language/ref/Rasterize.html}, note=[Accessed: 31-October-2026]}