A minor addition to the other answers. As it is recently [uncovered][1] by [Carl Woll][2], `ImageSize` accepts undocumented form ImageSize -> Automatic -> {width, height} which allows you to specify the width and height of the *plot range* directly. This option has higher precedence than `AspectRatio`: gr = Graphics[{Lighter@Blue, Rectangle[Scaled[{0, 0}], Scaled[{1, 1}]]}, ImageSize -> Automatic -> {300, 100}, AspectRatio -> 1, Frame -> True, Background -> GrayLevel[0.8], FrameStyle -> Opacity[0]] ImageCrop[%] // ImageDimensions >[![output](https://i.sstatic.net/JDyqj.png)](https://i.sstatic.net/JDyqj.png) > {300, 100} It can be used in combination with `AspectRatio`: Graphics[{Lighter@Blue, Rectangle[Scaled[{0, 0}], Scaled[{1, 1}]]}, ImageSize -> Automatic -> {Automatic, 100}, AspectRatio -> 1/3, Frame -> True, Background -> GrayLevel[0.8], FrameStyle -> Opacity[0]] ImageCrop[%] // ImageDimensions >[![output](https://i.sstatic.net/GNCyK.png)](https://i.sstatic.net/GNCyK.png) > {300, 100} The only (but crucial!) drawback is that this undocumented form doesn't play well when `Graphics` is wrapped by `Inset`: Graphics[{Inset[gr, {0, 0}, {0, 0}, Automatic]}, Background -> LightGreen, ImageSize -> {400, 150}] >[![output](https://i.sstatic.net/Z1DzX.png)](https://i.sstatic.net/Z1DzX.png) A workaround is to wrap `Graphics` by `Pane`, `Framed`, `Text` or `ExpressionCell`: Graphics[{Inset[Text[gr]]}, Background -> LightGreen, AspectRatio -> 1/3] ImageCrop@ImageCrop@% // ImageDimensions >[![output](https://i.sstatic.net/8Zzpl.png)](https://i.sstatic.net/8Zzpl.png) > {300, 100} Unfortunately with this workaround we loose the ability to position inset relative to the coordinates in the intrinsic coordinate system of its `Graphics` object as well as relative to `Scaled` coordinates inside its *plotting range*. :( [1]: https://mathematica.stackexchange.com/a/145446/280 [2]: https://mathematica.stackexchange.com/users/45431/carl-woll