About Uploading
Last updated
Uploading content is easy as pie. You just hit that fat Upload
() button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
Metadata
We provide two important fields for metadata: Tags and Source URL.
Tags
Tags are designed to let you group items together and describe them in terms of their content. The Description field — primarily intended for people uploading original content to the site — can be used to provide a more detailed description of or context around the item. It can also be used to provide audio descriptions for people with screenreaders.
For instance, the fact that a post contains twilight sparkle should be represented with a tag, and if it's the summer sun celebration, that's a tag, too. Fully describing a post can be done in the description field: Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at idol Princess Celestia.
We also have meta tags. The artist:artist name tag should be used to link an artist name to an uploaded image or video, and the author:author name tag should be added to posts containing text. Other meta tags define ratings, which are used to spoiler or hide NSFW content when not wanted. These should be used where appropriate.
For more information on how to properly use tags, please see our Tag Guidelines.
Source URL
Finally, there is the Source URL field. This should link to the page on which the content was originally found. Try to discover the source URL if you can, but if you can't then leave this field blank.
Scalable Vector Graphics posts
We support SVG posts. When you upload an SVG, we export PNG images from it for display on the site. But you can still download and view the SVG version using the download () and view () links on the content page. We use the librsvg
to render the images.
We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!
Pastes
You can also post unformatted text pastes. To do so, you can either upload a normal TXT file or you can type or paste text by clicking the Toggle paste form button on the upload form. This form will also allow you to specify the image ID of a thumbnail you wish to associate with your paste. If you upload while logged into your account, you can change this at any time from the post's page.
Optimization
When you upload a GIF, JPEG, or PNG image, we optimize them by removing unneeded data without affecting quality; resulting in smaller file sizes for us to store, leading to faster page loads for everypony. The tools we use to accomplish this include:
PNG
- We use
optipng
to deinterlace and compress PNG images, fixing any encoding issues JPEG
-
We use
jpegtran
to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression GIF
-
GIFs (pronounced yiffs) are a bit more complex since we have to treat all GIFs as possibly animated, and so have to deal with all the frame processing. We use
gifsicle
andffmpeg
to process GIFs SVG
- SVG images remain unchanged
Deduplication
We perform perceptual image deduplication using a simple image intensity based mechanism which has proven to be scalable and reasonably reliable over the years. We also provide SHA512 hashes of content on the site, though these are no longer used internally for deduplication.
Workflow
As processing runs in the background, we continue to serve the unoptimized file to ensure an uninterrupted experience. If you wish to download a file, however, you may wish to wait until the fully processed image is available.
tl;dr: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing your post, it'll be served instead of the old unoptimized one immediately.