{"id":21442,"date":"2016-11-23T13:58:36","date_gmt":"2016-11-23T13:58:36","guid":{"rendered":"http:\/\/how_to_select_the_perfect_image_format"},"modified":"2024-09-07T16:35:38","modified_gmt":"2024-09-07T23:35:38","slug":"how_to_select_the_perfect_image_format","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format","title":{"rendered":"How to select the perfect image format"},"content":{"rendered":"<div><\/div>\n<div>JPEGs, PNGs, and GIFs \u2014 oh my! Most web developers only learn which format to use through trial, error, and long experience, and not necessarily by fully understanding how these formats actually work.<\/div>\n<div><\/div>\n<div>In this article, we\u2019ll take a high-level look at each formats\u2019 compression algorithms, in order to understand how their differing strategies make them more or less appropriate for different kinds of images. Then, we\u2019ll tour a few next-generation image formats (like WebP and JPEG-XR) and see how we can use smart servers to take advantage of these powerful (but not yet universally-supported) formats, today.<\/div>\n<div><\/div>\n<div>Let\u2019s kick things off with a dear old friend\u2026<\/div>\n<div>\n<h2>JPEG<\/h2>\n<div>Allow me, for a moment, to spend some time appreciating the venerable, amazing, JPEG. The twenty-five-year-old bag-of-algorithms that is <a href=\"https:\/\/jpeg.org\/jpeg\/index.html\" target=\"_blank\" rel=\"noopener\">ISO 10918<\/a> aka the JPEG standard has stood the test of time.<\/div>\n<div><\/div>\n<div>So, how does it work? And what is it good for?<\/div>\n<div><\/div>\n<div>JPEG compression carves an image up into 8\u00d78-pixel-blocks, and then does something a little bit crazy to them, with a whole lot of math. It converts each block\u2019s <em>pixels<\/em>\u2014lists of R, G, and B values, mapped to sequential points in space\u2014into a list of <em>coefficients<\/em>, used in equations which describe the block in terms of <em>waves of energy<\/em>. In technical terms, the JPEG compression algorithm translates an image\u2019s information from the <em>spatial domain<\/em> to the <em>frequency domain<\/em>.<\/div>\n<div><\/div>\n<div>Practically, this means that JPEG is very good at compressing continuous-tone images: images with a tremendous number of colors, and smooth transitions between them. In other words, JPEG assumes that your image is going to look more or less like a photograph.<\/div>\n<div>Conversely, the JPEG format is <em>terrible<\/em> at compressing images with crisp edges or high-energy, noisy textures\u2014it\u2019ll put rings around sharp edges and blur out fine detail.<\/div>\n<\/div>\n<div><\/div>\n<div><a href=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/good_bad_jpg.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_650\/good_bad_jpg.jpg\" alt=\"Good or bad for JPG\" width=\"650\" height=\"214\" \/><\/a><\/div>\n<div><\/div>\n<div>In order to compress these images well, we will try to employ different compression algorithms. Enter our next format:<\/div>\n<div>\n<h2>GIF<\/h2>\n<div>In the early days of the web, if an image <em>wasn\u2019t<\/em> a JPEG, it was a GIF.<\/div>\n<div><\/div>\n<div>The GIF format uses the LZW compression algorithm, which is far simpler than JPEG\u2019s mathemagic. Essentially, the LZW algorithm scans over your image data and generates very short codes for the parts of it that repeat; LZW shortens repetition. Which means that the <a href=\"https:\/\/cloudinary.com\/tools\/compress-gif\">GIF<\/a> format is good at compressing images that have large chunks of identical or repetitive data. Images that only have a few colors, in broad swaths, with sharp transitions between them can be stored efficiently and <em>losslessly<\/em> as GIFs.<\/div>\n<div><\/div>\n<div>And even though it\u2019s a simple format, GIF sports a pair of fancy features: transparency and animation.<\/div>\n<div><\/div>\n<div>But\u2026 GIF is terrible at compressing things that have even a moderate number of colors; heck, the format has a baked-in, hard, 256-color limit. Converting an image with more than that number of colors into a GIF results in lossy <em>posterization<\/em>, which looks awful.<\/div>\n<\/div>\n<div><\/div>\n<div><a href=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/good_bad_gif.gif\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_650\/good_bad_gif.gif\" alt=\"Good or bad for GIF\" width=\"650\" height=\"214\" \/><\/a><\/div>\n<div><\/div>\n<div>\n<div>In short, GIF and JPEG have opposite and complementary strengths. They made a killer team in the web\u2019s early days.<\/div>\n<div><\/div>\n<div>But unresolved patent questions surrounding the LZW algorithm inspired a few very smart individuals to take a second crack at designing a lossless image format for the web.<\/div>\n<\/div>\n<div>\n<h2>PNG<\/h2>\n<div>PNG excels with the same sorts of images that GIF does, and brings a few added benefits:<\/div>\n<div><\/div>\n<div>\n<ul>\n<li>No 256 color limit<\/li>\n<li>Alpha channel transparency (so a pixel can be partially-transparent, and not simply all-transparent or fully-opaque)<\/li>\n<li>In all but a few edge cases, superior compression<\/li>\n<\/ul>\n<p><a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:PNG_transparency_demonstration_1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary\/image\/upload\/w_650\/png_compression.png\" alt=\"PNG Compression\" width=\"650\" height=\"416\" \/><\/a><\/p>\n<p>This <a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:PNG_transparency_demonstration_1.png\" target=\"_blank\" rel=\"noopener\">image from Wikipedia<\/a> shows off PNG\u2019s ability to compress a full-color image with semi-transparent pixels pretty dang well.<\/p>\n<p>How does PNG beat GIF, when it comes to compression? By adding some layers to its compression stack\u2026<\/p>\n<p>First, the PNG algorithm tries to reduce the amount of data it will need to store by using the pixels that it already knows about to predict the ones that it doesn\u2019t. The format features five different prediction strategies, but basically, the PNG assumes that pixels next to each other will be similar. If this assumption proves true, PNG saves data by only storing the difference between its prediction and the actual value; small numbers take up less space than large ones.<\/p>\n<p>Second, PNG cuts out repetition by allowing the image to refer to previous, identical pixel sequences (instead of storing the same data twice) using an algorithm called LZ77. If you squint, PNG\u2019s LZ77 and GIF\u2019s LZW are achieving the same ends\u2014cutting out repetition\u2014but get there via means which are distinct enough to evade patent lawyers. Everybody wins!<\/p>\n<p>And then, finally, having done all of that, PNG uses a process called \u201cHuffman coding\u201d to boil the remaining values down even further by generating the smallest-possible codes for the most common values (incidentally, the JPEG format uses Huffman coding as a last-step as well).<\/p>\n<p>Combining all three of these (lossless) techniques provides huge benefits over GIF\u2019s single strategy. And sophisticated tools can provide even greater compression ratios by altering the original image data lossily before it\u2019s run through this gauntlet, in order to make it more compression-friendly.<\/p>\n<p>Stepping back, all that you need to know is this: PNG will perform worse than JPEG when it comes to photographs, and better than GIF almost always. So, use it for images with crisp edges and broad swaths of solid color or precisely repeated patterns.<\/p>\n<h2>The next generation<\/h2>\n<p>As of this writing, those three formats\u2014JPEG, GIF, and PNG\u2014are the only image formats with universal support. Which is to say, they\u2019re the only formats that developers can actually use. But new, cutting edge formats are already here\u2014and they\u2019re spectacular.<\/p>\n<h3>WEBP<\/h3>\n<p>WebP is an offshoot of Google\u2019s WebM video format; the core of it\u2019s compression strategy is predictive, which is to say, it takes the simple predictive strategy used by the PNG format to the next level. WebP uses one of up to sixteen different prediction strategies for every (variable-sized) block in the image, and can optionally either losslessly or lossily compress the residual difference between the predicted and actual values. The format\u2019s relative complexity provides it with a lot of flexibility; it\u2019s good for a wide variety of imagery (both graphic, if you choose its lossless settings, and photographic, if you go lossy), with (generally) better compression than either PNG or JPEG.<\/p>\n<p>But, it\u2019s Google\u2019s format and it is only supported in Chrome at the moment.<\/p>\n<h3>JPEG-XR<\/h3>\n<p>Microsoft\u2019s next-gen-format-of-choice, JPEG-XR layers a bunch of new techniques on top of the basic mechanics of JPEG compression, enabling:<\/p>\n<ul>\n<li>Lossless compression<\/li>\n<li>More efficient lossy compression<\/li>\n<li>Alpha-channel semi-transparency<\/li>\n<\/ul>\n<p>Like WebP, JPEG-XR is a lot more complex, performant, and less-well-supported than its predecessors. Right now, the format is only supported in Internet Explorer and Edge.<\/p>\n<\/div>\n<\/div>\n<h2>How to use the formats of tomorrow, today<\/h2>\n<div>Is there any way for us to use these next-gen formats, right now? There is!<\/div>\n<div><\/div>\n<div><a href=\"http:\/\/w3c.github.io\/html\/semantics-embedded-content.html#the-source-element-when-used-with-the-picture-element\" target=\"_blank\" rel=\"noopener\">New markup<\/a> allows developers to supply the same image in multiple formats, and lets the browser decide which one to load out of the bunch. Unfortunately, this markup can get a little complex:<\/div>\n<div><\/div>\n<div>\n<div style=\"padding-left: 60px;\"><span style=\"font-family: 'courier new', courier;\">&lt;picture&gt;<\/span><\/div>\n<div style=\"padding-left: 90px;\"><span style=\"font-family: 'courier new', courier;\">&lt;source type=&#8221;image\/webp&#8221;\u00a0<\/span><span style=\"font-family: 'courier new', courier;\">srcset=&#8221;sunset.wepb&#8221; \/&gt;<\/span><\/div>\n<div style=\"padding-left: 90px;\"><span style=\"font-family: 'courier new', courier;\">&lt;source type=&#8221;image\/vnd.ms-photo&#8221;\u00a0<\/span><span style=\"font-family: 'courier new', courier;\">srcset=&#8221;sunset.jxr&#8221; \/&gt;<\/span><\/div>\n<div style=\"padding-left: 90px;\"><span style=\"font-family: 'courier new', courier;\">&lt;img src=&#8221;sunset.jpg&#8221;\u00a0<\/span><span style=\"font-family: 'courier new', courier;\">alt=&#8221;A colorful sunset&#8221; \/&gt;<\/span><\/div>\n<div style=\"padding-left: 60px;\"><span style=\"font-family: 'courier new', courier;\">&lt;\/picture&gt;<\/span><\/div>\n<\/div>\n<div><\/div>\n<div>\n<div>Fortunately, there\u2019s another way forward. Front-end engineers can shift this complexity to the back-end, employing smart servers that can send different users different resources from the same URL.<\/div>\n<div><\/div>\n<div>Using a service like Cloudinary, developers can deploy dynamic, adaptively-compressed images by adding a few simple characters to their URLs. Stick <em>f_auto<\/em> onto a Cloudinary URL, and you get adaptability without adding any complexity. The picture markup above boils back down to:<\/div>\n<\/div>\n<div><\/div>\n<div style=\"padding-left: 60px;\"><span style=\"font-family: 'courier new', courier;\">&lt;img src=&#8221;https:\/\/res.cloudinary.com\/eric-cloudinary\/ <\/span><\/div>\n<div style=\"padding-left: 90px;\"><span style=\"font-family: 'courier new', courier;\">image\/upload\/f_auto\/sunset&#8221;<\/span><span style=\"font-family: 'courier new', courier;\">\u00a0<\/span><span style=\"font-family: 'courier new', courier;\">alt=&#8221;A colorful sunset&#8221; \/&gt;<\/span><\/div>\n<div><\/div>\n<div>How does this work? Turns out, clients tell servers which formats they support when they request image resources from servers. A smart server, then, can send different clients different resources, based on the information contained within their requests.<\/div>\n<div><\/div>\n<div>And that\u2019s not all that a smart server can do\u2013when you tack on a <em>q_auto<\/em> too, Cloudinary will automatically figure out not only which format will work best for each client, but also which specific compression settings will work well for your particular image, saving you from having to remember anything at all about each formats\u2019 complex internal workings. So! Stop reading, and <a href=\"https:\/\/cloudinary.com\/users\/register_free\" target=\"_blank\" rel=\"noopener\">sign up for a free account<\/a> today.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>JPEGs, PNGs, and GIFs \u2014 oh my! Most web developers only learn which format to use through trial, error, and long experience, and not necessarily by fully understanding how these formats actually work. In this article, we\u2019ll take a high-level look at each formats\u2019 compression algorithms, in order to understand how their differing strategies make [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":21443,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[128,157,179,321],"class_list":["post-21442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-gif","tag-image-formats","tag-jpeg","tag-webp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Learn how to choose the best image format for your use case<\/title>\n<meta name=\"description\" content=\"Learn about various image formats and their compression algorithms, in order to understand how their differing strategies make them suitable for different images\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to select the perfect image format\" \/>\n<meta property=\"og:description\" content=\"Learn about various image formats and their compression algorithms, in order to understand how their differing strategies make them suitable for different images\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-23T13:58:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-07T23:35:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format-jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"199\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"How to select the perfect image format\",\"datePublished\":\"2016-11-23T13:58:36+00:00\",\"dateModified\":\"2024-09-07T23:35:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\"},\"wordCount\":1430,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA\",\"keywords\":[\"GIF\",\"Image Formats\",\"JPEG\",\"WebP\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2016\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\",\"url\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\",\"name\":\"Learn how to choose the best image format for your use case\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA\",\"datePublished\":\"2016-11-23T13:58:36+00:00\",\"dateModified\":\"2024-09-07T23:35:38+00:00\",\"description\":\"Learn about various image formats and their compression algorithms, in order to understand how their differing strategies make them suitable for different images\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA\",\"width\":300,\"height\":199},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to select the perfect image format\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Learn how to choose the best image format for your use case","description":"Learn about various image formats and their compression algorithms, in order to understand how their differing strategies make them suitable for different images","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format","og_locale":"en_US","og_type":"article","og_title":"How to select the perfect image format","og_description":"Learn about various image formats and their compression algorithms, in order to understand how their differing strategies make them suitable for different images","og_url":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format","og_site_name":"Cloudinary Blog","article_published_time":"2016-11-23T13:58:36+00:00","article_modified_time":"2024-09-07T23:35:38+00:00","og_image":[{"width":300,"height":199,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format-jpg?_i=AA","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format"},"author":{"name":"","@id":""},"headline":"How to select the perfect image format","datePublished":"2016-11-23T13:58:36+00:00","dateModified":"2024-09-07T23:35:38+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format"},"wordCount":1430,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA","keywords":["GIF","Image Formats","JPEG","WebP"],"inLanguage":"en-US","copyrightYear":"2016","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format","url":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format","name":"Learn how to choose the best image format for your use case","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA","datePublished":"2016-11-23T13:58:36+00:00","dateModified":"2024-09-07T23:35:38+00:00","description":"Learn about various image formats and their compression algorithms, in order to understand how their differing strategies make them suitable for different images","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA","width":300,"height":199},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/how_to_select_the_perfect_image_format#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to select the perfect image format"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649724615\/Web_Assets\/blog\/best_image_format\/best_image_format.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=21442"}],"version-history":[{"count":3,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21442\/revisions"}],"predecessor-version":[{"id":35609,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21442\/revisions\/35609"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21443"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}