Sometimes in Magento, even if you successfully uploaded product image in back-end, Magento do not show the image in customer front-end. There are several possible reasons for such behavior, here is the short checklist for this problem.
Case 1: Images do not show in Internet Explorer only (even in Magento admin back-end), shows OK for other browsers.
Solution: Most likely this problem related with CMYK color scheme of the images. The IE browser does not support CMYK images, only RGB ones. You can easily check the color scheme of the image in your image editor (for instance in Photoshop: Image -> Mode menu section). The only solution of this problem is to convert all your images to RGB color scheme.
Case 2: Image is visible in Magento admin back-end, but not visible in customer front-end.
Possible reason 1: You have wrong permissions on your /media/ folder.
Solution: Ensure you have writable permissions on this folder. Change permissions to 777 recursively. You can do it using SSH via this command (execute it in Magento directory):
> chmod -R 777 media/
Possible reason 2: Media folder is owned by another user. It can happen if you transfer your Magento store from one server to another.
Solution: Change ownership of the /media/ folder:
> chown -R {username}:{username} media/
Important: Make sure that folder owner is the same user as your web server user. If you are not sure, contact your server support administrator.
Possible reason 3: Magento cannot resize images due low PHP memory limit. Magento resize images using GD library, however if there is no sufficient amount of memory for such operation Magento will return a placeholder image.
Solution: Increase your memory limit. You should open your .htaccess file and find this string:
php_value memory_limit 256M
Make sure that this value is at least 256M, 512M is better.
Possible reason 4: The GD library is not installed/configured.
Solution: Make sure that your hosting installed GD library on your server, you can check it using php info.
Possible reason 5: Wrong attribute scope for small_image, thumbnail, base_image. Sometimes Magento processes images incorrectly, if they have scope=Store View (especially in case of multi-store installation).
Solution: You should open your Magento admin panel -> Catalog -> Attributes -> Manage attributes. After this you should find image, small_image & thumbnail attributes. Make sure that all these attributes have scope = Global.
Possible reason 6: Problem with safe mode.
Solution: It is not recommended to disable safe mode, but if you tried all other solutions you might try to disable safe mode on your server.
Solution: Resize picture in order to reduce the file size and try again. (This solution worked for me).