Welcome to Twibooru! Anonymous posting only; no content restrictions beyond pony-related and legal; comments are disabled by default (Settings -> Comments). Read me!
<div class="walloftext">
<p>
Uploading content is easy as pie. You just hit that fat <a href="https://twibooru.org/posts/new"><code>Upload</code> (<i class="fa fa-upload"></i>)</a> button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata: Tags and Source URL.</p>
<h3>Tags</h3>
<p>
<dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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.
</p>
<p>
For instance, the fact that a post contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing a post can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at idol Princess Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to an uploaded image or video, and the <span class="tag" data-tag-category="origin">author:author name</span> tag should be added to posts containing text. Other meta tags define ratings, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>For more information on how to properly use tags, please see our <a href="/pages/tags">Tag Guidelines</a>.</p>
<h3>Source URL</h3>
<p>
Finally, there is the <dfn>Source URL</dfn> 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.
</p>
<h2>Scalable Vector Graphics posts</h2>
<p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> posts. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use the <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Pastes</h2>
<p>
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 <em>Toggle paste form</em> 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. 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 <em>Toggle paste form</em> button on the <a href="https://twibooru.org/posts/new">upload form</a>. 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.
</p>
<h2>Optimization</h2>
<p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
GIFs (pronounced <i>yiffs</i>) 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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images remain unchanged</dd>
</dl>
</p>
<h2>Deduplication</h2>
<p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: 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.
</p>
</div>
<div class="walloftext">
<p>
Uploading content is easy as pie. You just hit that fat <code>Upload</code> (<i class="fa fa-upload"></i>) button up there next to the search box and fill in the form. But, if you'd like some more details, then read on. Uploading content is easy as pie. You just hit that fat <a href="https://twibooru.org/posts/new"><code>Upload</code> (<i class="fa fa-upload"></i>)</a> button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata: Tags and Source URL.</p>
<h3>Tags</h3>
<p><dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia</samp>. <dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to uploaded content. Other meta tags define ratings, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate. For instance, the fact that a post contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing a post can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at idol Princess Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to an uploaded image or video, and the <span class="tag" data-tag-category="origin">author:author name</span> tag should be added to posts containing text. Other meta tags define ratings, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>For more information on how to properly use tags, please see our <a href="/pages/tags">Tag Guidelines</a>.</p>
<h3>Source URL</h3>
<p>
Finally, there is the <dfn>Source URL</dfn> 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.
</p>
<h2>Scalable Vector Graphics uploads</h2> <h2>Scalable Vector Graphics posts</h2>
<p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images. We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> posts. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use the <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Pastes</h2>
<p>
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 <em>Toggle paste form</em> 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.
</p>
<h2>Optimization</h2>
<p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
GIFs (pronounced <i>yiffs</i>) 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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images remain unchanged</dd>
</dl>
</p>
<h2>Deduplication</h2>
<p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing the image, it'll be served instead of the old unoptimized one immediately. <abbr title="too long, didn't read">tl;dr</abbr>: 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.
</p>
</div>
<div class="walloftext">
<p>
Uploading content is easy as pie. You just hit that fat <code>Upload</code> (<i class="fa fa-upload"></i>) button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata: Tags and Source URL.</p>
<h3>Tags</h3>
<p><dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to uploaded content. Other meta tags define ratings, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>For more information on how to properly use tags, please see our <a href="/pages/tags">Tag Guidelines</a>.</p>
<h3>Source URL</h3>
<p>
Finally, there is the <dfn>Source URL</dfn> 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.
</p>
<h2>Scalable Vector Graphics uploads</h2>
<p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs GIFs (pronounced <i>yiffs</i>) 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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images remain unchanged</dd>
</dl>
</p>
<h2>Deduplication</h2>
<p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing the image, it'll be served instead of the old unoptimized one immediately.
</p>
</div>
<div class="walloftext">
<p>
Uploading content is easy as pie. You just hit that fat <code>Upload</code> (<i class="fa fa-upload"></i>) button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata: Tags and Source URL.</p>
<h3>Tags</h3>
<p><dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to an image. Other meta tags define ratings for images, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate. We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to uploaded content. Other meta tags define ratings, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>For more information on how to properly use tags, please see our <a href="/pages/tags">Tag Guidelines</a>.</p>
<h3>Source URL</h3>
<p>
Finally, there is the <dfn>Source URL</dfn> field. This should link to the page on which the image was originally found. Try to find out the source URL if you can, but if you can't then leave this field blank. Finally, there is the <dfn>Source URL</dfn> 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.
</p>
<h2>Scalable Vector Graphics uploads</h2>
<p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images remain unchanged</dd>
</dl>
</p>
<h2>Deduplication</h2>
<p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing the image, it'll be served instead of the old unoptimized one immediately.
</p>
</div>
<div class="walloftext">
<p>
Uploading content is easy as pie. You just hit that fat <code>Upload</code> (<i class="fa fa-upload"></i>) button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata: Tags and Source URL.</p>
<h3>Tags</h3>
<p><dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
We provide two important fields for metadata: Tags and the Source URL. <dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to an image. Other meta tags define ratings for images, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>For more information on how to properly use tags, please see our <a href="/pages/tags">Tag Guidelines</a>.</p>
<h3>Source URL</h3>
<p>
Finally, there is the <dfn>Source URL</dfn> field. This should link to the page on which the image was originally found. Try to find out the source URL if you can, but if you can't then leave this field blank.
</p>
<h2>Scalable Vector Graphics uploads</h2>
<p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images remain unchanged</dd>
</dl>
</p>
<h2>Deduplication</h2>
<p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing the image, it'll be served instead of the old unoptimized one immediately.
</p>
</div>
<div class="walloftext">
<p>
Uploading content is easy as pie. You just hit that fat <code>Upload</code> (<i class="fa fa-upload"></i>) button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>
We provide two important fields for metadata: Tags and the Source URL. <dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to an image. Other meta tags define ratings for images, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>
Finally, there is the <dfn>Source URL</dfn> field. This should link to the page on which the image was originally found. Try to find out the source URL if you can, but if you can't then leave this field blank.
</p>
<h2>Scalable Vector Graphics uploads</h2>
<p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues on the way
</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
GIFs are a bit more complex, as we treat all GIFs as probably animated, and so have to deal with all the frame processing. We use <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs 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 <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images are left unchanged by uploads <dd>SVG images remain unchanged</dd>
</dl>
</p>
<h2>Deduplication</h2>
<p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing the image, it'll be served instead of the old unoptimized one immediately.
</p>
</div>
<div class="walloftext">
<p>Uploading content is a piece of cake. You just hit the <code>Upload</code> (<i class="fa fa-upload"></i>) button and fill in the form. However, there's a few little details we'd like to explain better to you if you're interested.</p> <p>
Uploading content is easy as pie. You just hit that fat <code>Upload</code> (<i class="fa fa-upload"></i>) button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.
</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata. Tags are designed to let you group images together and describe things in terms of their content. The Description field &emdash; primarily intended for people uploading original content to the site &emdash; can be used to provide a more detailed description of or context around the image. It can also be used for audio description of images for people with screenreaders.</p>
<p>For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <i>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia,</i>.</p>
<p>We also have some "meta" tags — <span class="tag" data-tag-category="origin">artist:artist name</span> tags should be used to link an artist name to an image. There are also spoilered or hidden by default tags, which stop <abbr title="Not Safe For Work">NSFW</abbr> things from popping up when not wanted. These should be used where appropriate.</p>
<p>Finally, there is the Source URL field. This should link to the page on which the image was originally found. If you don't know, leave it blank, but try to find it first.</p> <p>
We provide two important fields for metadata: Tags and the Source URL. <dfn>Tags</dfn> are designed to let you group items together and describe them in terms of their content. The <dfn>Description field</dfn> — 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 for audio descriptions for people with screenreaders.
</p>
<p>
For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <samp>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia</samp>.
</p>
<p>
We also have meta tags. The <span class="tag" data-tag-category="origin">artist:artist name</span> tag should be used to link an artist name to an image. Other meta tags define ratings for images, which are used to spoiler or hide <abbr title="Not Safe For Work">NSFW</abbr> content when not wanted. These should be used where appropriate.
</p>
<p>
Finally, there is the <dfn>Source URL</dfn> field. This should link to the page on which the image was originally found. Try to find out the source URL if you can, but if you can't then leave this field blank.
</p>
<h2>Scalable Vector Graphics uploads</h2>
<p>We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads - once we get them on the server we make <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images out of them, but people can still download and view the SVG version on the links on the image. <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> is used to render the images.</p>
<p>We recommend you provide a sensible default resolution with your document - a couple of thousand pixels is plenty!</p> <p>
We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads. When you upload an SVG, we export <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images from it for display on the site. But you can still download and view the SVG version using the download (<i class="fa fa-download"></i>) and view (<i class="fa fa-eye"></i>) links on the content page. We use <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> to render the images.
</p>
<p>We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, or PNG, we do some checks on the image once it's been uploaded. Most images have unneeded data in them, which can be safely removed without affecting quality. We use a few tools to do this on your uploads, resulting in smaller file sizes for us to store, and faster page loads for everybody.</p>
<h4>PNG</h4>
<p>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues on the way.</p>
<h4>JPEG</h4>
<p>We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression.</p>
<h4>GIF</h4>
<p> GIFs are a bit more complex, as we treat all GIFs as probably animated, and so have to deal with all the frame processing. We use <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs.</p>
<h4>SVG</h4>
<p>SVG images are left unchanged by uploads.</p> <p>
When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, 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:
<dl>
<dt><h3>PNG</h3></dt>
<dd>
We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues on the way
</dd>
<dt><h3>JPEG</h3></dt>
<dd>
We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression
</dd>
<dt><h3>GIF</h3></dt>
<dd>
GIFs are a bit more complex, as we treat all GIFs as probably animated, and so have to deal with all the frame processing. We use <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs
</dd>
<dt><h3>SVG</h3></dt>
<dd>SVG images are left unchanged by uploads
</dl>
</p>
<h2>Deduplication</h2>
<p>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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of images in the site, though these are no longer used internally for deduplication.</p> <p>
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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of content on the site, though these are no longer used internally for deduplication.
</p>
<h2>Workflow</h2>
<p>We do all the processing in the background, and while we're doing it, we continue to serve the unoptimized file, so there's no noticeable difference for anyone. It is, however, noteworthy if you intend to download a file, you may wish to wait for the fully processed image to be available.</p>
<p>Basically, upload, and don't worry about it! We'll handle all the heavy lifting on our end, and once we finish processing the image, it'll be served instead of the old unoptimized one immediately.</p> <p>
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.
</p>
<p>
<abbr title="too long, didn't read">tl;dr</abbr>: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing the image, it'll be served instead of the old unoptimized one immediately.
</p>
</div>
<div class="walloftext">
<p>Uploading content is a piece of cake. You just hit the 'Upload' button and fill in the form. However, there's a few little details we'd like to explain better to you if you're interested.</p>
<h2>Metadata</h2>
<p>We provide a few fields for metadata - tags are designed to let you group images together, and describe things in terms of their content. We also have a description field, which is intended mostly for people uploading original content to the site, or for more detailed description of images or context around the image. It can also be used for audio description of images for people with screenreaders.</p>
<p>For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> belongs as a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image like <code>Twilight sparkle standing on the steps in awe at Celestia at the Summer Sun Celebration, wide-eyed in awe</code> should be done in the description.</p>
<p>We also have some "meta" tags — <span class="tag" data-tag-category="origin">artist:artist name</span> tags should be used to link an artist name to an image. There are also spoilered or hidden by default tags, which stop NSFW things from popping up when not wanted. These should be used where appropriate.</p>
<p>Finally, there is the source URL field. This should link to the page on which the image was originally found. If you don't know, leave it blank, but try to find it first.</p>
<h2>Scalable Vector Graphic uploads</h2>
<p>We support SVG uploads - once we get them on the server we make PNG images out of them, but people can still download and view the SVG version on the links on the image. <code>librsvg</code> is used to render the images.</p>
<p>We recommend you provide a sensible default resolution with your document - a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>When you upload a GIF, JPEG or PNG, we do some checks on the image once it's been uploaded. Most images have un-needed data in them, which can be safely removed without affecting quality. We use a few tools to do this on your uploads, resulting in smaller file sizes for us to store, and faster page loads for everybody.</p>
<h4>PNG</h4>
<p>We use <code>optipng</code> to deinterlace and compress PNG images, fixing any encoding issues on the way.</p>
<h4>JPEG</h4>
<p>We use <code>jpegtran</code> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression.</p>
<h4>GIF</h4>
<p> GIFs are a bit more complex, as we treat all GIFs as probably animated, and so have to deal with all the frame processing. We use <code>gifsicle</code> and <code>ffmpeg</code> to process GIFs.</p>
<h4>SVG</h4>
<p>SVG images are left unchanged by uploads.</p>
<h2>Deduplication</h2>
<p>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 images in the site, though these are no longer used internally for deduplication.</p>
<h2>Workflow</h2>
<p>We do all the processing in the background, and while we're doing it, we continue to serve the unoptimized file, so there's no noticeable difference for anyone. It is, however, noteworthy if you intend to download a file, you may wish to wait for the fully processed image to be available.</p>
<p>Basically, upload, and don't worry about it! We'll handle all the heavy lifting on our end, and once we finish processing the image, it'll be served instead of the old unoptimized one immediately.</p> <p>Uploading content is a piece of cake. You just hit the <code>Upload</code> (<i class="fa fa-upload"></i>) button and fill in the form. However, there's a few little details we'd like to explain better to you if you're interested.</p>
<h2>Metadata</h2>
<p>We provide two important fields for metadata. Tags are designed to let you group images together and describe things in terms of their content. The Description field &emdash; primarily intended for people uploading original content to the site &emdash; can be used to provide a more detailed description of or context around the image. It can also be used for audio description of images for people with screenreaders.</p>
<p>For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> should be represented with a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image can be done in the description field: <i>Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at Celestia,</i>.</p>
<p>We also have some "meta" tags — <span class="tag" data-tag-category="origin">artist:artist name</span> tags should be used to link an artist name to an image. There are also spoilered or hidden by default tags, which stop <abbr title="Not Safe For Work">NSFW</abbr> things from popping up when not wanted. These should be used where appropriate.</p>
<p>Finally, there is the Source URL field. This should link to the page on which the image was originally found. If you don't know, leave it blank, but try to find it first.</p>
<h2>Scalable Vector Graphics uploads</h2>
<p>We support <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics" rel="external noopener" target="_blank"><abbr title="Scalable Vector Graphics">SVG</abbr></a> uploads - once we get them on the server we make <a href="https://en.wikipedia.org/wiki/Portable_Network_Graphics" rel="external noopener" target="_blank"><abbr title="Portable Network Graphics">PNG</abbr></a> images out of them, but people can still download and view the SVG version on the links on the image. <a href="https://developer.gnome.org/rsvg/" rel="external noopener" target="_blank"><code>librsvg</code></a> is used to render the images.</p>
<p>We recommend you provide a sensible default resolution with your document - a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>When you upload a <a href="https://en.wikipedia.org/wiki/GIF" rel="external noopener" target="_blank"><abbr title="Graphics Interchange Format">GIF</abbr></a>, <a href="https://en.wikipedia.org/wiki/JPEG" rel="external noopener" target="_blank"><abbr title="Joint Photographic Experts Group">JPEG</abbr></a>, or PNG, we do some checks on the image once it's been uploaded. Most images have unneeded data in them, which can be safely removed without affecting quality. We use a few tools to do this on your uploads, resulting in smaller file sizes for us to store, and faster page loads for everybody.</p>
<h4>PNG</h4>
<p>We use <a href="http://optipng.sourceforge.net/" rel="external noopener" target="_blank"><code>optipng</code></a> to deinterlace and compress PNG images, fixing any encoding issues on the way.</p>
<h4>JPEG</h4>
<p>We use <a href="https://jpegclub.org/" rel="external noopener" target="_blank"><code>jpegtran</code></a> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression.</p>
<h4>GIF</h4>
<p> GIFs are a bit more complex, as we treat all GIFs as probably animated, and so have to deal with all the frame processing. We use <a href="https://www.lcdf.org/gifsicle/" rel="external noopener" target="_blank"><code>gifsicle</code></a> and <a href="https://ffmpeg.org/" rel="external noopener" target="_blank"><code>ffmpeg</code></a> to process GIFs.</p>
<h4>SVG</h4>
<p>SVG images are left unchanged by uploads.</p>
<h2>Deduplication</h2>
<p>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 <a href="https://en.wikipedia.org/wiki/SHA-2" rel="external noopener" target="_blank"><abbr title="Secure Hash Algorithm 2">SHA512</abbr></a> hashes of images in the site, though these are no longer used internally for deduplication.</p>
<h2>Workflow</h2>
<p>We do all the processing in the background, and while we're doing it, we continue to serve the unoptimized file, so there's no noticeable difference for anyone. It is, however, noteworthy if you intend to download a file, you may wish to wait for the fully processed image to be available.</p>
<p>Basically, upload, and don't worry about it! We'll handle all the heavy lifting on our end, and once we finish processing the image, it'll be served instead of the old unoptimized one immediately.</p>
</div>
<div class="walloftext">
<p>Uploading content is a piece of cake. You just hit the 'Upload' button and fill in the form. However, there's a few little details we'd like to explain better to you if you're interested.</p>
<h2>Metadata</h2>
<p>We provide a few fields for metadata - tags are designed to let you group images together, and describe things in terms of their content. We also have a description field, which is intended mostly for people uploading original content to the site, or for more detailed description of images or context around the image. It can also be used for audio description of images for people with screenreaders.</p>
<p>For instance, the fact that an image contains <span class="tag" data-tag-category="character">twilight sparkle</span> belongs as a tag, and if it's the <span class="tag">summer sun celebration</span>, that's a tag, too. Fully describing an image like <code>Twilight sparkle standing on the steps in awe at Celestia at the Summer Sun Celebration, wide-eyed in awe</code> should be done in the description.</p>
<p>We also have some "meta" tags — <span class="tag" data-tag-category="origin">artist:artist name</span> tags should be used to link an artist name to an image. There are also spoilered or hidden by default tags, which stop NSFW things from popping up when not wanted. These should be used where appropriate.</p>
<p>Finally, there is the source URL field. This should link to the page on which the image was originally found. If you don't know, leave it blank, but try to find it first.</p>
<h2>Scalable Vector Graphic uploads</h2>
<p>We support SVG uploads - once we get them on the server we make PNG images out of them, but people can still download and view the SVG version on the links on the image. <code>librsvg</code> is used to render the images.</p>
<p>We recommend you provide a sensible default resolution with your document - a couple of thousand pixels is plenty!</p>
<h2>Optimization</h2>
<p>When you upload a GIF, JPEG or PNG, we do some checks on the image once it's been uploaded. Most images have un-needed data in them, which can be safely removed without affecting quality. We use a few tools to do this on your uploads, resulting in smaller file sizes for us to store, and faster page loads for everybody.</p>
<h4>PNG</h4>
<p>We use <code>optipng</code> to deinterlace and compress PNG images, fixing any encoding issues on the way.</p>
<h4>JPEG</h4>
<p>We use <code>jpegtran</code> to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression.</p>
<h4>GIF</h4>
<p> GIFs are a bit more complex, as we treat all GIFs as probably animated, and so have to deal with all the frame processing. We use <code>gifsicle</code> and <code>ffmpeg</code> to process GIFs.</p>
<h4>SVG</h4>
<p>SVG images are left unchanged by uploads.</p>
<h2>Deduplication</h2>
<p>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 images in the site, though these are no longer used internally for deduplication.</p>
<h2>Workflow</h2>
<p>We do all the processing in the background, and while we're doing it, we continue to serve the unoptimized file, so there's no noticeable difference for anyone. It is, however, noteworthy if you intend to download a file, you may wish to wait for the fully processed image to be available.</p>
<p>Basically, upload, and don't worry about it! We'll handle all the heavy lifting on our end, and once we finish processing the image, it'll be served instead of the old unoptimized one immediately.</p>
</div>