如何控制图像和图形的大小?

时间:2011-12-11 20:38:39

标签: wolfram-mathematica

我一直无法正确安排图形元素。这是一个例子:

im1 = Import["http://upload.wikimedia.org/wikipedia/commons/5/5c/London_2010_Tower_Bridge.jpg"];
GraphicsRow[{im1, ImageAdd[im1, Graphics[Disk[]]], Graphics[Disk[]]}]

example of problems

圆圈都以相同的方式指定,但以不同的比例显示,因此试图显示其工作原理的图表并不十分令人满意。显然,一个缩放以匹配图像,但我不明白为什么它们看起来不相同。 RowGraphicsRow类似但给我同样的问题。

3 个答案:

答案 0 :(得分:9)

出现此问题是因为在显示屏中,掩码中使用的磁盘的直径等于图像的高度,而独立磁盘的直径等于图像的宽度。您可以通过明确指定磁盘大小来纠正此问题。

im1 = Import[
   "http://upload.wikimedia.org/wikipedia/commons/5/5c/London_2010_\
Tower_Bridge.jpg"];
disk = Graphics[Disk[], ImageSize -> ImageDimensions@im1];
GraphicsRow[{im1, ImageAdd[im1, disk], disk}, Spacings -> 0, ImageSize -> Full]

enter image description here

答案 1 :(得分:8)

另一个选择是将图像包装在具有自动宽度和固定高度的Pane中,例如

Row[Pane[#, {Automatic, 200}] & /@ 
 {im1, ImageAdd[im1, Graphics[Disk[]]], Graphics[Disk[]]}] 

scaled to have the dame height

答案 2 :(得分:5)

图像周围有填充物,黑色磁盘周围没有填充物。通过了解导入图像的纵横比(从ImageDimensions获得),并通过设置GraphicsRow和黑色磁盘的特定大小,您可以控制外观:

GraphicsRow[{im1, ImageAdd[im1, Graphics[Disk[]]], 
  Graphics[Disk[], ImageSize -> 90, ImagePadding -> 15]}, 
 ImageSize -> 360, Spacings -> 0]