I often do something like this to save an image file into the same folder as the current notebook file:
(* pretend to generate a fractal *)
RandomImage[1, {1920, 1080}, ColorSpace -> "RGB"]
(* export the previous output into this notebook's directory as a png file *)
Export[FileNameJoin[{NotebookDirectory[], "output image.png"}], %]
Note that I used the NotebookDirectory function, which will fail if the current notebook hasn't actually been saved to disk yet. A simpler alternative is just something like Export["/my/path/output image.png", %]
Displaying large images in notebooks tends to use a lot of memory and can be slow in my experience, so if you can avoid displaying the image in a cell in the notebook, then less memory will be used. Maybe that's the cause of the crashes that you've seen?
Module[{img},
(* pretend to generate a fractal, and store it in a variable *)
img = RandomImage[1, {1920, 1080}, ColorSpace -> "RGB"];
(* export it into this notebook's directory as a png file *)
Export[FileNameJoin[{NotebookDirectory[], "output image.png"}], img]
]
(I tested the code above, and it works for me on MacOS 10.13.6, Mathematica 11)