Как контролировать размер изображений и графики? - PullRequest
8 голосов
/ 12 декабря 2011

У меня были проблемы с правильной организацией графических элементовВот пример:

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

Круги оба заданы одинаково, но показаны в разных масштабах, поэтому диаграмма, которая пытается показать, как это работает, не 'т очень удовлетворительно.Очевидно, что каждый масштабируется, чтобы соответствовать изображению, но я не могу понять, почему они не выглядят одинакового размера.Row похоже на GraphicsRow, но дает мне ту же проблему.

Ответы [ 3 ]

9 голосов
/ 12 декабря 2011

Проблема возникает из-за того, что на дисплее диск, используемый в маске, имеет диаметр, равный высоте изображения, тогда как автономный диск имеет диаметр, равный ширине изображения.Вы можете исправить это, указав размер диска в явном виде.

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

8 голосов
/ 12 декабря 2011

Другой вариант - обернуть изображения в Pane с автоматической шириной и фиксированной высотой, например:

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

scaled to have the dame height

5 голосов
/ 12 декабря 2011

Вокруг изображений есть отступы, а вокруг черного диска нет.Зная соотношение сторон импортируемого изображения (полученного из ImageDimensions) и устанавливая определенный размер для GraphicsRow и для черного диска, вы можете управлять внешним видом:

GraphicsRow[{im1, ImageAdd[im1, Graphics[Disk[]]], 
  Graphics[Disk[], ImageSize -> 90, ImagePadding -> 15]}, 
 ImageSize -> 360, Spacings -> 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...