Sometimes a pic won't post because it WAS uploaded at one time, but was deleted. So, the dupe detector still rejects it (this is so that people won't keep uploading the same pics that were deleted by moderation). You can usually get around this by either re-saving the pic (load it in an image editor, and use "save as" to make a new file), or if it's a .jpg, you can edit the properties (type a comment on it or something).
Sometimes, the uploader will just refuse to upload a pic for no conceivable reason. These instances are, luckily, few and far between, but they can be worse than the above when they happen. If none of the above works, you can try copying the image, pasting it in an image editor and saving that. Or try saving it in a different format (I once had a manip that refused to post until I changed it from .png to .jpg, and it wasn't even a file size issue).
Also note that REALLY large images (like over 5000x5000 pixels) won't upload and any pic with a file size ~8-9 MB or larger won't either. Any pic not saved in .jpg, .png, or .gif will fail also (I don't believe we have .bmp support).
As for pics being invisible, like what we just had happen, it's some sort of error in uploading. Re-uploading should fix it. On the whole, this error is even rarer than pics that refuse to upload for no reason.