{"id":4196,"date":"2018-03-13T11:06:02","date_gmt":"2018-03-13T05:36:02","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=4196"},"modified":"2018-03-13T11:10:00","modified_gmt":"2018-03-13T05:40:00","slug":"reducing-size-of-bitmap","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/","title":{"rendered":"Reducing Size of Bitmap"},"content":{"rendered":"<h1 style=\"text-align: center;\"><strong>Reducing Size of Bitmap<\/strong><\/h1>\n<h2><strong>Introduction-<\/strong><\/h2>\n<p style=\"text-align: left;\">Images come in all shapes and sizes. In many cases they are larger than required size for a typical application user interface. For example, the system Gallery application displays photos taken using your Android devices&#8217;s camera which are typically much higher resolution than the screen density of your device. So we have to reduce the size of the Bitmap of that image. We can reduce the size of Bitmap using BitmapFactory class.<\/p>\n<h2>BitmapFactory Class-<\/h2>\n<p style=\"text-align: left;\">BitmapFactory class creates bitmap objects from various data source like files, stream and byte array. BitMapFactory class extends Objects class. This class provide several method to creates bitmap objects which are following:-<\/p>\n<h4>decodeByteArray &#8211;<\/h4>\n<p>Bitmap decodeByteArray (byte[] data,int offset, int length, BitMapFactory.Options option)<br \/>\nThis method is used decode an immutable bitmap from the specified byte array.<\/p>\n<p><span style=\"font-weight: 400;\">Parameter<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">data<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 byte \u00a0array of compressed size.<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">\u00a0offset<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 offset \u00a0into image data for where the decoder should begin parsing.<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">\u00a0 length<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The number of bytes beginning at offset to parse.<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">\u00a0options<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 BitmapFactory.Options null-ok, Options that control downsampling and whether the image\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 should be completely decoded.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Return<\/span><\/p>\n<table style=\"height: 86px;\" width=\"640\">\n<tbody>\n<tr>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0Bitmap<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The decoded bitmap or null if the image data could not be decoded,if option requested only\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0the\u00a0 size be returned.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>decodeFile-<\/h4>\n<p>Bitmap decodeFile (String pathName, BitmapFactory.Options options)<br \/>\nDecode a file path into a bitmap. If the specified file name is null, or cannot be decoded into a bitmap, the function returns null.<\/p>\n<p><span style=\"font-weight: 400;\">Parameter<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">\u00a0pathName<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 Complete path name for the file to be decoded.<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6 style=\"text-align: left;\"><span style=\"font-weight: 400;\">options<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 BitmapFactory.Options null-ok, Options that control downsampling and whether the\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 image should be completely decoded.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Return<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">Bitmap<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">The decoded bitmap or null if the image data could not be decoded,if option requested only\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 the\u00a0 size be returned.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>decodeResource-<\/h4>\n<p>Bitmap decodeResource (Resource resource, int id, BitmapFactory.Options options)<br \/>\nThis method is also used to generate bitmap object.<\/p>\n<p><span style=\"font-weight: 400;\">Parameter<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">resource<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The resource object containing image data.<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 id<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The resource id of image data.<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6><span style=\"font-weight: 400;\">options<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 BitmapFactory.Options null-ok, Options that control downsampling and whether the image\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 should be completely decoded.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Return<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<h6><span style=\"font-weight: 400;\">Bitmap<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The decoded bitmap or null if the image data could not be decoded,if option requested only\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 the\u00a0 size be returned.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>decodeStream-<\/h4>\n<p>Bitmap decodeStream (InputStream inputStream, Rect outPadding, BitmapFactory.Options options)<br \/>\nDecode an input stream into a bitmap. If the input stream is null then function returns null. The stream&#8217;s position will be where ever it was after the encoded data was read.<\/p>\n<p><span style=\"font-weight: 400;\">Parametre<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">inputStream<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The input stream that holds the raw data to be decoded into bitmap<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6 style=\"text-align: center;\"><span style=\"font-weight: 400;\">outPadding<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0If not null return padding rect for the bitmap if it exists otherwise set padding to [-1,-1,-1,-1]<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0options<\/span><\/h6>\n<\/td>\n<td>\n<h6><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0BitmapFactory.Options null-ok, Options that control downsampling and whether the\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0image\u00a0 should be completely decoded.<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Return<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Bitmap<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 The decoded bitmap or null if the image data could not be decoded,if option requested\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0only the size be returned.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Working Flow &#8211;<\/h2>\n<ol>\n<li>First we create path from file object using file.getPath() and BitmapFactory. Options object and set options.inJustDecodeBounds = true.<\/li>\n<li>Decode image using BitmapFactory.decodeFile(filePath,options) to check dimensions. As per given in example.<\/li>\n<li>Calculate inSampleSize and decode again with set inSampleSize. As per given in method calculateInSampleSize(BitmapFactory.Options bmOptions) of example.<\/li>\n<\/ol>\n<h4>inSampleSize &#8211;<\/h4>\n<p style=\"text-align: left;\">If inSampleSize &gt; 1 requests the decoder to subsample the original image, returning a smaller image to save memory. The sample size is the number of pixels in either dimension that correspond to a single pixel in the decoded bitmap.Any value &lt;= 1 treated as 1. The decoder uses final value based on power of 2 any other value will be rounded down to nearest power of 2. Decoder use final inSampleSize value to rounding down.<\/p>\n<h2>Example-<\/h2>\n<pre class=\"lang:java decode:true \">private Bitmap reduceBitmapSize(File imageFilePath)\r\n{\r\n    BitmapFactory.Options bmOptions = new BitmapFactory.Options();\r\n    bmOptions.inJustDecodeBounds = true;\r\n    BitmapFactory.decodeFile(imageFilePath.getAbsolutePath(), bmOptions);\r\n    bmOptions.inSampleSize = calculateInSampleSize(bmOptions);\r\n    bmOptions.inJustDecodeBounds = false;\r\n    Bitmap bitmap =BitmapFactory.decodeFile(imageFilePath.getAbsolutePath(),bmOptions);\r\n    return bitmap;\r\n}\r\n\/\/ This method is used to calculate largest inSampleSize \r\n\/\/which is used to decode bitmap in required bitmap.\r\nprivate int calculateInSampleSize(BitmapFactory.Options bmOptions)\r\n{\r\n    \/\/ Raw height and width of image\r\n    final int photoWidth = bmOptions.outWidth;\r\n    final int photoHeight = bmOptions.outHeight;\r\n    int scaleFactor = 1;\r\n    if (photoWidth &gt; AppConstant.TARGET_IMAGE_WIDTH \r\n        || photoHeight &gt; AppConstant.TARGET_IMAGE_HEIGHT)\r\n    {\r\n        final int halfPhotoWidth = photoWidth \/ 2;\r\n        final int halfPhotoHeight = photoHeight \/ 2;\r\n\r\n   \/\/ Calculate the largest inSampleSize value that is a power of 2\r\n   \/\/and keeps both height and width larger than the requested height and width.\r\n        while ((halfPhotoWidth \/ scaleFactor) &gt;= AppConstant.TARGET_IMAGE_WIDTH \r\n                &amp;&amp; (halfPhotoHeight \/ scaleFactor) &gt;= AppConstant.TARGET_IMAGE_HEIGHT)\r\n        {\r\n            scaleFactor *= 2;\r\n        }\r\n    }\r\n\r\n    return scaleFactor;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reducing Size of Bitmap Introduction- Images come in all shapes and sizes. In many cases they are larger than required size for a typical application user interface. For example, the system Gallery application displays photos taken using your Android devices&#8217;s camera which are typically much higher resolution than the screen density of your device. So [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4208,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,71],"tags":[],"class_list":["post-4196","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reducing Size of Bitmap - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reducing Size of Bitmap - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Reducing Size of Bitmap Introduction- Images come in all shapes and sizes. In many cases they are larger than required size for a typical application user interface. For example, the system Gallery application displays photos taken using your Android devices&#8217;s camera which are typically much higher resolution than the screen density of your device. So [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-13T05:36:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-13T05:40:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/02\/Bitmap-Reduced-Image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"705\" \/>\n\t<meta property=\"og:image:height\" content=\"513\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Reducing Size of Bitmap\",\"datePublished\":\"2018-03-13T05:36:02+00:00\",\"dateModified\":\"2018-03-13T05:40:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/\"},\"wordCount\":617,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/Bitmap-Reduced-Image.png\",\"articleSection\":[\"Android\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/\",\"name\":\"Reducing Size of Bitmap - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/Bitmap-Reduced-Image.png\",\"datePublished\":\"2018-03-13T05:36:02+00:00\",\"dateModified\":\"2018-03-13T05:40:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/Bitmap-Reduced-Image.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/Bitmap-Reduced-Image.png\",\"width\":705,\"height\":513},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/reducing-size-of-bitmap\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reducing Size of Bitmap\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reducing Size of Bitmap - InnovationM - Blog","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:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/","og_locale":"en_US","og_type":"article","og_title":"Reducing Size of Bitmap - InnovationM - Blog","og_description":"Reducing Size of Bitmap Introduction- Images come in all shapes and sizes. In many cases they are larger than required size for a typical application user interface. For example, the system Gallery application displays photos taken using your Android devices&#8217;s camera which are typically much higher resolution than the screen density of your device. So [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/","og_site_name":"InnovationM - Blog","article_published_time":"2018-03-13T05:36:02+00:00","article_modified_time":"2018-03-13T05:40:00+00:00","og_image":[{"width":705,"height":513,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/02\/Bitmap-Reduced-Image.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Reducing Size of Bitmap","datePublished":"2018-03-13T05:36:02+00:00","dateModified":"2018-03-13T05:40:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/"},"wordCount":617,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/02\/Bitmap-Reduced-Image.png","articleSection":["Android","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/","url":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/","name":"Reducing Size of Bitmap - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/02\/Bitmap-Reduced-Image.png","datePublished":"2018-03-13T05:36:02+00:00","dateModified":"2018-03-13T05:40:00+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/02\/Bitmap-Reduced-Image.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2018\/02\/Bitmap-Reduced-Image.png","width":705,"height":513},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/reducing-size-of-bitmap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Reducing Size of Bitmap"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/4196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=4196"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/4196\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/4208"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=4196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=4196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=4196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}