Image manipulation in the PHP GD functions is memory-hungry. Each image that you create via one of the imagecreate type functions creates a bitmap of that image in memory. As such, a bitmap requires much more memory than a compressed format such as a JPEG, the bitmap storing 3 or 4 bytes per pixel while the original JPEG will require only small fraction of that (depending on its compression level). If working with multiple images, be sure to use [man]imagedestroy/man on each image as soon as you are done with it, so that it does not hang around in memory. Other than that, there is no way to force PHP to use less memory if opening up a large image (in pixel dimesions) -- at least no way that I know of.