{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 Preparing content for recognition","link":"https:\/\/docs.aspose.com\/ocr\/java\/ocrinput\/","description":"Recent content in Preparing content for recognition on Documentation","generator":"Hugo -- gohugo.io","lastBuildDate":"Wed, 26 Apr 2023 00:00:00 +0000","item":{"title":"Java: Providing an image as pixel array","link":"https:\/\/docs.aspose.com\/ocr\/java\/ocrinput\/image-by-pixel\/","pubDate":"Wed, 26 Apr 2023 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/ocr\/java\/ocrinput\/image-by-pixel\/","description":"\n        \n        \n        <p>Aspose.OCR for Java allows you to <a href=\"https:\/\/docs.aspose.com\/ocr\/ocr\/java\/ocrinput\/#adding-source-content\">provide<\/a> an image for recognition as an array of pixels. This can be useful when working with <a href=\"https:\/\/docs.aspose.com\/ocr\/ocr\/java\/supported-file-formats\/\">unsupported<\/a> file formats or with raw bitmap data.<\/p>\n<p>Pixels are listed from left to right (by line), and each line is added to the array from top to bottom.<\/p>\n<p><img src=\"pixel-order.png\" alt=\"Pixel ordering\"><\/p>\n<p>The image is added as a flat array of integers representing the amount of each color per pixel in RGB (red-green-blue) order. The color depth ranges from 1 to 32 bits per pixel (configured in <a href=\"https:\/\/docs.aspose.com\/ocr\/ocr\/java\/ocrinput\/#adding-source-content\"><code>add<\/code> method<\/a> of <code>OcrInput<\/code> object), where <code>0<\/code> means no that color and <code>FF<\/code> is the maximum amount of that color. For example, 2x2 pixels full color bitmap (24 bits per pixel without transparency) is represented as the following array:<\/p>\n<p><img src=\"pixel-order-java.png\" alt=\"32 bits per pixel color array\"><\/p>\n<p>Because the pixel array does not contain an image header, you must directly specify the image width and height, as well as the total number of bits required to code the color information of the pixel. The table below lists the most commonly used color models:<\/p>\n<table>\n<thead>\n<tr>\n<th>Bits per pixel<\/th>\n<th>Color model<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>Monochrome (black and white)<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Grayscale (shades of gray)<\/td>\n<\/tr>\n<tr>\n<td>24<\/td>\n<td>True color (RGB) without transparency<\/td>\n<\/tr>\n<tr>\n<td>32<\/td>\n<td>True color (RGB) with transparency channel<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"example\">Example<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Load image\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">URL<\/span> <span class=\"n\">resFile<\/span> <span class=\"o\">=<\/span>\t<span class=\"n\">getClass<\/span><span class=\"o\">().<\/span><span class=\"na\">getClassLoader<\/span><span class=\"o\">().<\/span><span class=\"na\">getResource<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;source.bmp&#34;<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">com<\/span><span class=\"o\">.<\/span><span class=\"na\">aspose<\/span><span class=\"o\">.<\/span><span class=\"na\">imaging<\/span><span class=\"o\">.<\/span><span class=\"na\">Image<\/span> <span class=\"n\">image<\/span> <span class=\"o\">=<\/span> <span class=\"n\">com<\/span><span class=\"o\">.<\/span><span class=\"na\">aspose<\/span><span class=\"o\">.<\/span><span class=\"na\">imaging<\/span><span class=\"o\">.<\/span><span class=\"na\">Image<\/span><span class=\"o\">.<\/span><span class=\"na\">load<\/span><span class=\"o\">(<\/span><span class=\"n\">resFile<\/span><span class=\"o\">.<\/span><span class=\"na\">getFile<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Add image to batch\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span><span class=\"n\">OcrInput<\/span> <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">OcrInput<\/span><span class=\"o\">(<\/span><span class=\"n\">InputType<\/span><span class=\"o\">.<\/span><span class=\"na\">SingleImage<\/span><span class=\"o\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"n\">com<\/span><span class=\"o\">.<\/span><span class=\"na\">aspose<\/span><span class=\"o\">.<\/span><span class=\"na\">imaging<\/span><span class=\"o\">.<\/span><span class=\"na\">RasterImage<\/span> <span class=\"n\">rasterImage<\/span> <span class=\"o\">=<\/span> <span class=\"o\">(<\/span><span class=\"n\">com<\/span><span class=\"o\">.<\/span><span class=\"na\">aspose<\/span><span class=\"o\">.<\/span><span class=\"na\">imaging<\/span><span class=\"o\">.<\/span><span class=\"na\">RasterImage<\/span><span class=\"o\">)<\/span> <span class=\"n\">image<\/span><span class=\"o\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"kt\">int<\/span><span class=\"o\">[]<\/span> <span class=\"n\">pixels<\/span> <span class=\"o\">=<\/span> <span class=\"n\">rasterImage<\/span><span class=\"o\">.<\/span><span class=\"na\">loadArgb32Pixels<\/span><span class=\"o\">(<\/span><span class=\"n\">rasterImage<\/span><span class=\"o\">.<\/span><span class=\"na\">getBounds<\/span><span class=\"o\">());<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"n\">source<\/span><span class=\"o\">.<\/span><span class=\"na\">add<\/span><span class=\"o\">(<\/span><span class=\"n\">pixels<\/span><span class=\"o\">,<\/span> <span class=\"n\">rasterImage<\/span><span class=\"o\">.<\/span><span class=\"na\">getWidth<\/span><span class=\"o\">(),<\/span> <span class=\"n\">rasterImage<\/span><span class=\"o\">.<\/span><span class=\"na\">getHeight<\/span><span class=\"o\">(),<\/span> <span class=\"n\">rasterImage<\/span><span class=\"o\">.<\/span><span class=\"na\">getBitsPerPixel<\/span><span class=\"o\">());<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span> <span class=\"k\">finally<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"n\">image<\/span><span class=\"o\">.<\/span><span class=\"na\">dispose<\/span><span class=\"o\">();<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div>\n      "}}}