Prevent Grid from resizing images

ImageSizeMultiplers

  • ImageSizeMultipliers is an option that specifies how much smaller to render graphics that appear within other constructs.

  • ImageSizeMultipliers -> {u,v} specifies that graphics inside list-like constructs should be u times their normal size, while graphics inside function-like constructs should be v times their normal size.

  • A typical default setting for ImageSizeMultipliers is {0.5, 0.25}.

So we can use

Style[Grid[{{a, b}}], ImageSizeMultipliers -> {1, 1}]

enter image description here


One way to do it, which would be a minimal change to your current code, is just wrap image b in Show as you did with image a and give the ImageSize option to this second Show.

dat = Table[{x, y, RandomReal[]*x*y}, {x, 1, 50}, {y, 1, 50}];
img = ListContourPlot[Flatten[dat, 1], ImageSize -> {300, 300}];
oldspotlight = 
  Graphics[{}, Background -> Black, PlotRange -> {{1, 50}, {1, 50}}, 
   ImageSize -> 300];
a = Show[img, 
  Graphics[{Circle[{90, 60}, 10]}, PlotRange -> {{1, 50}, {1, 50}}, 
   ImageSize -> {300, 300}]];
b = Show[ImageMultiply[img, 
   ImageAdd[oldspotlight, 
    Graphics[{ColorData["GrayTones"][10/20], Disk[{90, 60}, 10]}, 
     Background -> White, PlotRange -> {{1, 50}, {1, 50}}]]], 
  ImageSize -> {300, 300}];
Grid[{{a, b}}]

enter image description here


How about using Row:

Row[{img, "  ", oldspotlight}]

or

Row[{a, "  ", Image[b, ImageSize -> 300]}]

both of which give:

enter image description here

(I added the " " to make some space between them).