var searchIndex = {}; searchIndex["image"] = {"doc":"This crate provides native rust implementations of\nImage encoders and decoders and basic image manipulation\nfunctions.","items":[[3,"Luma","image","Grayscale colors",null,null],[12,"data","","",0,null],[3,"LumaA","","Grayscale colors + alpha channel",null,null],[12,"data","","",1,null],[3,"Rgb","","RGB colors",null,null],[12,"data","","",2,null],[3,"Rgba","","RGB colors + alpha channel",null,null],[12,"data","","",3,null],[3,"SubImage","","A View into another image",null,null],[3,"ImageBuffer","","Generic image buffer",null,null],[3,"Pixels","","Immutable pixel iterator",null,null],[3,"MutPixels","","Mutable pixel iterator\nDEPRECATED: It is currently not possible to create a safe iterator for this in Rust. You have to use an iterator over the image buffer instead.",null,null],[3,"Frame","","A single animation frame",null,null],[3,"Frames","","Hold the frames of the animated image",null,null],[4,"ColorType","","An enumeration over supported color types and their bit depths",null,null],[13,"Gray","","Pixel is grayscale",4,null],[13,"RGB","","Pixel contains R, G and B channels",4,null],[13,"Palette","","Pixel is an index into a color palette",4,null],[13,"GrayA","","Pixel is grayscale with an alpha channel",4,null],[13,"RGBA","","Pixel is RGB with an alpha channel",4,null],[4,"ImageError","","An enumeration of Image Errors",null,null],[13,"FormatError","","The Image is not formatted properly",5,null],[13,"DimensionError","","The Image's dimensions are either too small or too large",5,null],[13,"UnsupportedError","","The Decoder does not support this image format",5,null],[13,"UnsupportedColor","","The Decoder does not support this color type",5,null],[13,"NotEnoughData","","Not enough data was provided to the Decoder\nto decode the image",5,null],[13,"IoError","","An I/O Error occurred while decoding the image",5,null],[13,"ImageEnd","","The end of the image has been reached",5,null],[4,"ImageFormat","","An enumeration of supported image formats.\nNot all formats support both encoding and decoding.",null,null],[13,"PNG","","An Image in PNG Format",6,null],[13,"JPEG","","An Image in JPEG Format",6,null],[13,"GIF","","An Image in GIF Format",6,null],[13,"WEBP","","An Image in WEBP Format",6,null],[13,"PPM","","An Image in PPM Format",6,null],[13,"TIFF","","An Image in TIFF Format",6,null],[13,"TGA","","An Image in TGA Format",6,null],[4,"FilterType","","Available Sampling Filters",null,null],[13,"Nearest","","Nearest Neighbor",7,null],[13,"Triangle","","Linear Filter",7,null],[13,"CatmullRom","","Cubic Filter",7,null],[13,"Gaussian","","Gaussian Filter",7,null],[13,"Lanczos3","","Lanczos with window 3",7,null],[4,"DynamicImage","","A Dynamic Image",null,null],[13,"ImageLuma8","","Each pixel in this image is 8-bit Luma",8,null],[13,"ImageLumaA8","","Each pixel in this image is 8-bit Luma with alpha",8,null],[13,"ImageRgb8","","Each pixel in this image is 8-bit Rgb",8,null],[13,"ImageRgba8","","Each pixel in this image is 8-bit Rgb with alpha",8,null],[5,"open","","Open the image located at the path specified.\nThe image's format is determined from the path's file extension.",null,{"inputs":[{"name":"p"}],"output":{"name":"imageresult"}}],[5,"load","","Create a new image from a Reader",null,{"inputs":[{"name":"r"},{"name":"imageformat"}],"output":{"name":"imageresult"}}],[5,"load_from_memory","","Create a new image from a byte slice\nMakes an educated guess about the image format.\nTGA is not supported by this function.",null,null],[5,"load_from_memory_with_format","","Create a new image from a byte slice",null,null],[5,"save_buffer","","Saves the supplied buffer to a file at the path specified.",null,null],[5,"copy_memory","","Copies data from `src` to `dst`",null,null],[0,"math","","Mathematical helper functions and types.",null,null],[0,"utils","image::math","Shared mathematical utility functions.",null,null],[5,"clamp","image::math::utils","Cut value to be inside given range",null,{"inputs":[{"name":"n"},{"name":"n"},{"name":"n"}],"output":{"name":"n"}}],[0,"nq","image::math","NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994.\nSee "Kohonen neural networks for optimal colour quantization"\nin "Network: Computation in Neural Systems" Vol. 5 (1994) pp 351-367.\nfor a discussion of the algorithm.\nSee also http://www.acm.org/~dekker/NEUQUANT.HTML",null,null],[3,"NeuQuant","image::math::nq","Neural network color quantizer",null,null],[11,"new","","Creates a new neuronal network and trains it with the supplied data",9,null],[11,"init","","Initializes the neuronal network and trains it with the supplied data",9,null],[11,"map_pixel","","Maps the pixel in-place to the best-matching color in the color map",9,null],[11,"index_of","","Finds the best-matching index in the color map for `pixel`",9,null],[0,"imageops","image","Image Processing Functions",null,null],[4,"FilterType","image::imageops","Available Sampling Filters",null,null],[13,"Nearest","","Nearest Neighbor",7,null],[13,"Triangle","","Linear Filter",7,null],[13,"CatmullRom","","Cubic Filter",7,null],[13,"Gaussian","","Gaussian Filter",7,null],[13,"Lanczos3","","Lanczos with window 3",7,null],[5,"rotate90","","Rotate an image 90 degrees clockwise.",null,{"inputs":[{"name":"i"}],"output":{"name":"imagebuffer"}}],[5,"rotate180","","Rotate an image 180 degrees clockwise.",null,{"inputs":[{"name":"i"}],"output":{"name":"imagebuffer"}}],[5,"rotate270","","Rotate an image 270 degrees clockwise.",null,{"inputs":[{"name":"i"}],"output":{"name":"imagebuffer"}}],[5,"flip_horizontal","","Flip an image horizontally",null,{"inputs":[{"name":"i"}],"output":{"name":"imagebuffer"}}],[5,"flip_vertical","","Flip an image vertically",null,{"inputs":[{"name":"i"}],"output":{"name":"imagebuffer"}}],[5,"filter3x3","","Perform a 3x3 box filter on the supplied image.\n```kernel``` is an array of the filter weights of length 9.",null,null],[5,"resize","","Resize the supplied image to the specified dimensions\n```nwidth``` and ```nheight``` are the new dimensions.\n```filter``` is the sampling filter to use.",null,{"inputs":[{"name":"i"},{"name":"u32"},{"name":"u32"},{"name":"filtertype"}],"output":{"name":"imagebuffer"}}],[5,"blur","","Performs a Gaussian blur on the supplied image.\n```sigma``` is a measure of how much to blur by.",null,{"inputs":[{"name":"i"},{"name":"f32"}],"output":{"name":"imagebuffer"}}],[5,"unsharpen","","Performs an unsharpen mask on the supplied image\n```sigma``` is the amount to blur the image by.\n```threshold``` is the threshold for the difference between\nsee https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking",null,{"inputs":[{"name":"i"},{"name":"f32"},{"name":"i32"}],"output":{"name":"imagebuffer"}}],[5,"crop","","Return a mutable view into an image",null,{"inputs":[{"name":"i"},{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u32"}],"output":{"name":"subimage"}}],[5,"overlay","","Overlay an image at a given coordinate (x, y)",null,{"inputs":[{"name":"i"},{"name":"i"},{"name":"u32"},{"name":"u32"}],"output":null}],[0,"colorops","","Public only because of Rust bug:\nhttps://github.com/rust-lang/rust/issues/18241\nFunctions for altering and converting the color of pixelbufs",null,null],[3,"BiLevel","image::imageops::colorops","A bi-level color map",null,null],[5,"grayscale","","Convert the supplied image to grayscale",null,{"inputs":[{"name":"i"}],"output":{"name":"imagebuffer"}}],[5,"invert","","Invert each pixel within the supplied image\nThis function operates in place.",null,{"inputs":[{"name":"i"}],"output":null}],[5,"contrast","","Adjust the contrast of the supplied image\n```contrast``` is the amount to adjust the contrast by.\nNegative values decrease the contrast and positive values increase the contrast.",null,{"inputs":[{"name":"i"},{"name":"f32"}],"output":{"name":"imagebuffer"}}],[5,"brighten","","Brighten the supplied image\n```value``` is the amount to brighten each pixel by.\nNegative values decrease the brightness and positive values increase it.",null,{"inputs":[{"name":"i"},{"name":"i32"}],"output":{"name":"imagebuffer"}}],[5,"dither","","Reduces the colors of the image using the supplied `color_map` while applying\nFloyd-Steinberg dithering to improve the visual conception",null,{"inputs":[{"name":"imagebuffer"},{"name":"map"}],"output":null}],[5,"index_colors","","Reduces the colors using the supplied `color_map` and returns an image of the indices",null,{"inputs":[{"name":"imagebuffer"},{"name":"map"}],"output":{"name":"imagebuffer"}}],[8,"ColorMap","","A color map",null,null],[16,"Color","","The color type on which the map operates on",10,null],[10,"index_of","","Returns the index of the closed match of `color`\nin the color map.",10,null],[10,"map_color","","Maps `color` to the closes color in the color map.",10,null],[11,"clone","","",11,null],[11,"index_of","","",11,null],[11,"map_color","","",11,null],[11,"index_of","image::math::nq","",9,null],[11,"map_color","","",9,null],[11,"clone","image","",7,null],[0,"webp","","Decoding of Webp Images",null,null],[3,"WebpDecoder","image::webp","A Representation of a Webp Image format decoder.",null,null],[11,"new","","Create a new WebpDecoder from the Reader ```r```.\nThis function takes ownership of the Reader.",12,{"inputs":[{"name":"r"}],"output":{"name":"webpdecoder"}}],[11,"dimensions","","",12,null],[11,"colortype","","",12,null],[11,"row_len","","",12,null],[11,"read_scanline","","",12,null],[11,"read_image","","",12,null],[0,"vp8","","An implementation of the VP8 Video Codec",null,null],[3,"Frame","image::webp::vp8","A Representation of the last decoded video frame",null,null],[12,"width","","The width of the luma plane",13,null],[12,"height","","The height of the luma plane",13,null],[12,"ybuf","","The luma plane of the frame",13,null],[12,"keyframe","","Indicates whether this frame is a keyframe",13,null],[12,"for_display","","Indicates whether this frame is intended for display",13,null],[12,"pixel_type","","The pixel type of the frame as defined by Section 9.2\nof the VP8 Specification",13,null],[3,"VP8Decoder","","VP8 Decoder\nOnly decodes keyframes",null,null],[11,"clone","","",13,null],[11,"fmt","","",13,null],[11,"default","","",13,{"inputs":[],"output":{"name":"frame"}}],[11,"new","","Create a new decoder.\nThe reader must present a raw vp8 bitstream to the decoder",14,{"inputs":[{"name":"r"}],"output":{"name":"vp8decoder"}}],[11,"decode_frame","","Decodes the current frame and returns a reference to it",14,null],[0,"ppm","image","Encoding of portable pixmap Images",null,null],[3,"PPMEncoder","image::ppm","A representation of a PPM encoder.",null,null],[11,"new","","Create a new PPMEncoder from the Writer ```w```.\nThis function takes ownership of the Writer.",15,{"inputs":[{"name":"w"}],"output":{"name":"ppmencoder"}}],[11,"encode","","Encode the buffer ```im``` as a PPM image.\n```width``` and ```height``` are the dimensions of the buffer.\n```color``` is the buffers ColorType.",15,null],[0,"png","image","Decoding and Encoding of PNG Images",null,null],[3,"PNGDecoder","image::png","The representation of a PNG decoder",null,null],[3,"PNGEncoder","","The representation of a PNG encoder",null,null],[11,"new","","Create a new decoder that decodes from the stream ```r```",16,{"inputs":[{"name":"r"}],"output":{"name":"pngdecoder"}}],[11,"palette","","Returns a reference to the color palette used for indexed\ncolor images.\nEach array element is a tuple of RGB values.",16,null],[11,"dimensions","","",16,null],[11,"colortype","","",16,null],[11,"row_len","","",16,null],[11,"read_scanline","","",16,null],[11,"read_image","","",16,null],[11,"new","","Create a new encoder that writes its output to ```w```",17,{"inputs":[{"name":"w"}],"output":{"name":"pngencoder"}}],[11,"encode","","Encodes the image ```image```\nthat has dimensions ```width``` and ```height```\nand ```ColorType``` ```c```",17,null],[0,"zlib","","An Implementation of RFC 1950",null,null],[3,"ZlibDecoder","image::png::zlib","A Zlib compressed stream decoder.",null,null],[3,"ZlibEncoder","","A Zlib compressed stream encoder.",null,null],[11,"new","","Create a new decoder that decodes from a Reader",18,{"inputs":[{"name":"r"}],"output":{"name":"zlibdecoder"}}],[11,"inner","","Return a mutable reference to the wrapped Reader",18,null],[11,"read","","",18,null],[11,"new","","Builds a new encoder.",19,{"inputs":[{"name":"w"}],"output":{"name":"result"}}],[11,"into_inner","","Finish writing and returns the underlying writer.",19,null],[11,"write","","",19,null],[11,"flush","","",19,null],[11,"drop","","",19,null],[0,"deflate","image::png","A DEFLATE encoder (RFC 1951).",null,null],[3,"Deflater","image::png::deflate","A DEFLATE encoder (RFC 1951).",null,null],[11,"new","","Creates a new encoder that writes to the underlying writer.",20,{"inputs":[{"name":"w"}],"output":{"name":"deflater"}}],[11,"into_inner","","Stops encoding and returns the underlying writer.",20,null],[11,"write","","",20,null],[11,"flush","","",20,null],[11,"drop","","",20,null],[0,"inflate","image::png","An Implementation of RFC 1951",null,null],[3,"Inflater","image::png::inflate","A DEFLATE compressed stream decoder.",null,null],[11,"new","","Create a new decoder that decodes from a Reader",21,{"inputs":[{"name":"r"}],"output":{"name":"inflater"}}],[11,"eof","","Indicate whether the end of the stream has been reached.",21,null],[11,"inner","","Return a mutable reference to the wrapped Reader",21,null],[11,"read","","",21,null],[0,"hash","image::png","This module provides implementations of common hashing algorithms.",null,null],[3,"Adler32","image::png::hash","An Implementation of the Adler-32 checksum",null,null],[3,"Crc32","","An Implementation of the Crc-32 checksum",null,null],[11,"clone","","",22,null],[11,"new","","Create a new hasher.",22,{"inputs":[],"output":{"name":"adler32"}}],[11,"update","","Update the internal hasher with the bytes from ```buf```",22,null],[11,"checksum","","Return the computed hash.",22,null],[11,"reset","","Reset this hasher to its initial state.",22,null],[11,"clone","","",23,null],[11,"new","","Create a new hasher.",23,{"inputs":[],"output":{"name":"crc32"}}],[11,"update","","Update the internal hasher with the bytes from ```buf```",23,null],[11,"checksum","","Return the computed hash.",23,null],[11,"reset","","Reset this hasher to its initial state.",23,null],[0,"jpeg","image","Decoding and Encoding of JPEG Images",null,null],[3,"JPEGDecoder","image::jpeg","The representation of a JPEG decoder",null,null],[3,"JPEGEncoder","","The representation of a JPEG encoder",null,null],[3,"Component","","A representation of a JPEG component",null,null],[12,"id","","The Component's identifier",24,null],[12,"h","","Horizontal sampling factor",24,null],[12,"v","","Vertical sampling factor",24,null],[12,"tq","","The quantization table selector",24,null],[12,"dc_table","","Index to the Huffman DC Table",24,null],[12,"ac_table","","Index to the AC Huffman Table",24,null],[12,"dc_pred","","The dc prediction of the component",24,null],[11,"new","","Create a new encoder that writes its output to ```w```",25,{"inputs":[{"name":"w"}],"output":{"name":"jpegencoder"}}],[11,"encode","","Encodes the image ```image```\nthat has dimensions ```width``` and ```height```\nand ```ColorType``` ```c```\nThe Image in encoded with subsampling ratio 4:2:2",25,null],[11,"clone","","",24,null],[11,"new","","Create a new decoder that decodes from the stream ```r```",26,{"inputs":[{"name":"r"}],"output":{"name":"jpegdecoder"}}],[11,"dimensions","","",26,null],[11,"colortype","","",26,null],[11,"row_len","","",26,null],[11,"read_scanline","","",26,null],[11,"read_image","","",26,null],[0,"gif","image","Decoding of GIF Images",null,null],[3,"GIFDecoder","image::gif","A gif decoder",null,null],[3,"GIFEncoder","","A GIF encoder.",null,null],[4,"ColorMode","","The color mode the encoder will use to encode the image.",null,null],[13,"TrueColor","","Image will be encoded in multiple frames if more than 256 colors are present",27,null],[13,"Indexed","","Image will be reduced to `64 < = n <= 256` colors",27,null],[11,"new","","Creates a new GIF decoder",28,{"inputs":[{"name":"r"}],"output":{"name":"gifdecoder"}}],[11,"dimensions","","",28,null],[11,"colortype","","",28,null],[11,"row_len","","",28,null],[11,"read_scanline","","",28,null],[11,"read_image","","",28,null],[11,"clone","","",27,null],[11,"fmt","","",27,null],[11,"new","","Creates a new GIF encoder",29,{"inputs":[{"name":"imagebuffer"},{"name":"option"},{"name":"colormode"}],"output":{"name":"encoder"}}],[11,"encode","","Encodes the image",29,null],[0,"tiff","image","Decoding and Encoding of TIFF Images",null,null],[3,"TIFFDecoder","image::tiff","The representation of a PNG decoder",null,null],[4,"ByteOrder","","Byte order of the TIFF file.",null,null],[13,"LittleEndian","","little endian byte order",30,null],[13,"BigEndian","","big endian byte order",30,null],[11,"fmt","","",31,null],[11,"new","","Create a new decoder that decodes from the stream ```r```",31,{"inputs":[{"name":"r"}],"output":{"name":"imageresult"}}],[11,"init","","Initializes the decoder.",31,null],[11,"next_image","","Reads in the next image.\nIf there is no further image in the TIFF file a format error is return.\nTo determine whether there are more images call `TIFFDecoder::more_images` instead.",31,null],[11,"more_images","","Returns `true` if there is at least one more image available.",31,null],[11,"byte_order","","Returns the byte_order",31,null],[11,"read_short","","Reads a TIFF short value",31,null],[11,"read_long","","Reads a TIFF long value",31,null],[11,"read_offset","","Reads a TIFF IFA offset/value field",31,null],[11,"goto_offset","","Moves the cursor to the specified offset",31,null],[11,"dimensions","","",31,null],[11,"colortype","","",31,null],[11,"row_len","","",31,null],[11,"read_scanline","","",31,null],[11,"read_image","","",31,null],[11,"fmt","","",30,null],[11,"clone","","",30,null],[0,"tga","image","Decoding of TGA Images",null,null],[3,"TGADecoder","image::tga","The representation of a TGA decoder",null,null],[11,"new","","Create a new decoder that decodes from the stream `r`",32,{"inputs":[{"name":"r"}],"output":{"name":"tgadecoder"}}],[11,"dimensions","","",32,null],[11,"colortype","","",32,null],[11,"row_len","","",32,null],[11,"read_scanline","","",32,null],[11,"read_image","","",32,null],[11,"fmt","image","",5,null],[11,"fmt","","",5,null],[11,"description","","",5,null],[11,"cause","","",5,null],[11,"from","","",5,{"inputs":[{"name":"error"}],"output":{"name":"imageerror"}}],[11,"from","","",5,{"inputs":[{"name":"error"}],"output":{"name":"imageerror"}}],[11,"fmt","","",6,null],[11,"eq","","",6,null],[11,"clone","","",6,null],[11,"next","","",33,null],[11,"next","","",34,null],[11,"new","","Construct a new subimage",35,{"inputs":[{"name":"i"},{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u32"}],"output":{"name":"subimage"}}],[11,"inner_mut","","Returns a mutable reference to the wrapped image.",35,null],[11,"change_bounds","","Change the coordinates of this subimage.",35,null],[11,"to_image","","Convert this subimage to an ImageBuffer",35,null],[11,"dimensions","","",35,null],[11,"bounds","","",35,null],[11,"get_pixel","","",35,null],[11,"put_pixel","","",35,null],[11,"blend_pixel","","DEPRECATED: This method will be removed. Blend the pixel directly instead.",35,null],[11,"get_pixel_mut","","",35,null],[11,"new_luma8","","Creates a dynamic image backed by a buffer of grey pixels.",8,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"dynamicimage"}}],[11,"new_luma_a8","","Creates a dynamic image backed by a buffer of grey\npixels with transparency.",8,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"dynamicimage"}}],[11,"new_rgb8","","Creates a dynamic image backed by a buffer of RGB pixels.",8,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"dynamicimage"}}],[11,"new_rgba8","","Creates a dynamic image backed by a buffer of RGBA pixels.",8,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"dynamicimage"}}],[11,"to_rgb","","Returns a copy of this image as an RGB image.",8,null],[11,"to_rgba","","Returns a copy of this image as an RGBA image.",8,null],[11,"to_luma","","Returns a copy of this image as a Luma image.",8,null],[11,"to_luma_alpha","","Returns a copy of this image as a LumaA image.",8,null],[11,"crop","","Return a cut out of this image delimited by the bounding rectangle.",8,null],[11,"as_rgb8","","Return a reference to an 8bit RGB image",8,null],[11,"as_mut_rgb8","","Return a mutable reference to an 8bit RGB image",8,null],[11,"as_rgba8","","Return a reference to an 8bit RGBA image",8,null],[11,"as_mut_rgba8","","Return a mutable reference to an 8bit RGBA image",8,null],[11,"as_luma8","","Return a reference to an 8bit Grayscale image",8,null],[11,"as_mut_luma8","","Return a mutable reference to an 8bit Grayscale image",8,null],[11,"as_luma_alpha8","","Return a reference to an 8bit Grayscale image with an alpha channel",8,null],[11,"as_mut_luma_alpha8","","Return a mutable reference to an 8bit Grayscale image with an alpha channel",8,null],[11,"raw_pixels","","Return this image's pixels as a byte vector.",8,null],[11,"color","","Return this image's color type.",8,null],[11,"grayscale","","Return a grayscale version of this image.",8,null],[11,"invert","","Invert the colors of this image.\nThis method operates inplace.",8,null],[11,"resize","","Resize this image using the specified filter algorithm.\nReturns a new image. The image's aspect ratio is preserved.\n```nwidth``` and ```nheight``` are the new image's dimensions",8,null],[11,"resize_exact","","Resize this image using the specified filter algorithm.\nReturns a new image. Does not preserve aspect ratio.\n```nwidth``` and ```nheight``` are the new image's dimensions",8,null],[11,"blur","","Performs a Gaussian blur on this image.\n```sigma``` is a measure of how much to blur by.",8,null],[11,"unsharpen","","Performs an unsharpen mask on this image\n```sigma``` is the amount to blur the image by.\n```threshold``` is a control of how much to sharpen.\nsee https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking",8,null],[11,"filter3x3","","Filters this image with the specified 3x3 kernel.",8,null],[11,"adjust_contrast","","Adjust the contrast of this image.\n```contrast``` is the amount to adjust the contrast by.\nNegative values decrease the contrast and positive values increase the contrast.",8,null],[11,"brighten","","Brighten the pixels of this image.\n```value``` is the amount to brighten each pixel by.\nNegative values decrease the brightness and positive values increase it.",8,null],[11,"flipv","","Flip this image vertically",8,null],[11,"fliph","","Flip this image horizontally",8,null],[11,"rotate90","","Rotate this image 90 degrees clockwise.",8,null],[11,"rotate180","","Rotate this image 180 degrees clockwise.",8,null],[11,"rotate270","","Rotate this image 270 degrees clockwise.",8,null],[11,"save","","Encode this image and write it to ```w```",8,null],[11,"dimensions","","",8,null],[11,"bounds","","",8,null],[11,"get_pixel","","",8,null],[11,"put_pixel","","",8,null],[11,"blend_pixel","","DEPRECATED: Use iterator `pixels_mut` to blend the pixels directly.",8,null],[11,"get_pixel_mut","","DEPRECATED: Do not use is function: It is unimplemented!",8,null],[11,"clone","","",4,null],[11,"fmt","","",4,null],[11,"eq","","",4,null],[11,"ne","","",4,null],[11,"hash","","",2,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"channel_count","","",2,{"inputs":[],"output":{"name":"u8"}}],[11,"color_model","","",2,{"inputs":[],"output":{"name":"str"}}],[11,"color_type","","",2,{"inputs":[],"output":{"name":"colortype"}}],[11,"channels","","",2,null],[11,"channels_mut","","",2,null],[11,"channels4","","",2,null],[11,"from_channels","","",2,{"inputs":[{"name":"t"},{"name":"t"},{"name":"t"},{"name":"t"}],"output":{"name":"rgb"}}],[11,"from_slice","","",2,null],[11,"from_slice_mut","","",2,null],[11,"to_rgb","","",2,null],[11,"to_rgba","","",2,null],[11,"to_luma","","",2,null],[11,"to_luma_alpha","","",2,null],[11,"map","","",2,null],[11,"apply","","",2,null],[11,"map_with_alpha","","",2,null],[11,"apply_with_alpha","","",2,null],[11,"map2","","",2,null],[11,"apply2","","",2,null],[11,"invert","","",2,null],[11,"blend","","",2,null],[11,"index","","",2,null],[11,"index_mut","","",2,null],[11,"hash","","",0,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"channel_count","","",0,{"inputs":[],"output":{"name":"u8"}}],[11,"color_model","","",0,{"inputs":[],"output":{"name":"str"}}],[11,"color_type","","",0,{"inputs":[],"output":{"name":"colortype"}}],[11,"channels","","",0,null],[11,"channels_mut","","",0,null],[11,"channels4","","",0,null],[11,"from_channels","","",0,{"inputs":[{"name":"t"},{"name":"t"},{"name":"t"},{"name":"t"}],"output":{"name":"luma"}}],[11,"from_slice","","",0,null],[11,"from_slice_mut","","",0,null],[11,"to_rgb","","",0,null],[11,"to_rgba","","",0,null],[11,"to_luma","","",0,null],[11,"to_luma_alpha","","",0,null],[11,"map","","",0,null],[11,"apply","","",0,null],[11,"map_with_alpha","","",0,null],[11,"apply_with_alpha","","",0,null],[11,"map2","","",0,null],[11,"apply2","","",0,null],[11,"invert","","",0,null],[11,"blend","","",0,null],[11,"index","","",0,null],[11,"index_mut","","",0,null],[11,"hash","","",3,null],[11,"fmt","","",3,null],[11,"clone","","",3,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"channel_count","","",3,{"inputs":[],"output":{"name":"u8"}}],[11,"color_model","","",3,{"inputs":[],"output":{"name":"str"}}],[11,"color_type","","",3,{"inputs":[],"output":{"name":"colortype"}}],[11,"channels","","",3,null],[11,"channels_mut","","",3,null],[11,"channels4","","",3,null],[11,"from_channels","","",3,{"inputs":[{"name":"t"},{"name":"t"},{"name":"t"},{"name":"t"}],"output":{"name":"rgba"}}],[11,"from_slice","","",3,null],[11,"from_slice_mut","","",3,null],[11,"to_rgb","","",3,null],[11,"to_rgba","","",3,null],[11,"to_luma","","",3,null],[11,"to_luma_alpha","","",3,null],[11,"map","","",3,null],[11,"apply","","",3,null],[11,"map_with_alpha","","",3,null],[11,"apply_with_alpha","","",3,null],[11,"map2","","",3,null],[11,"apply2","","",3,null],[11,"invert","","",3,null],[11,"blend","","",3,null],[11,"index","","",3,null],[11,"index_mut","","",3,null],[11,"hash","","",1,null],[11,"fmt","","",1,null],[11,"clone","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"channel_count","","",1,{"inputs":[],"output":{"name":"u8"}}],[11,"color_model","","",1,{"inputs":[],"output":{"name":"str"}}],[11,"color_type","","",1,{"inputs":[],"output":{"name":"colortype"}}],[11,"channels","","",1,null],[11,"channels_mut","","",1,null],[11,"channels4","","",1,null],[11,"from_channels","","",1,{"inputs":[{"name":"t"},{"name":"t"},{"name":"t"},{"name":"t"}],"output":{"name":"lumaa"}}],[11,"from_slice","","",1,null],[11,"from_slice_mut","","",1,null],[11,"to_rgb","","",1,null],[11,"to_rgba","","",1,null],[11,"to_luma","","",1,null],[11,"to_luma_alpha","","",1,null],[11,"map","","",1,null],[11,"apply","","",1,null],[11,"map_with_alpha","","",1,null],[11,"apply_with_alpha","","",1,null],[11,"map2","","",1,null],[11,"apply2","","",1,null],[11,"invert","","",1,null],[11,"blend","","",1,null],[11,"index","","",1,null],[11,"index_mut","","",1,null],[11,"from_raw","","Contructs a buffer from a generic container\n(for example a `Vec` or a slice)\nReturns None if the container is not big enough",36,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"container"}],"output":{"name":"option"}}],[11,"into_raw","","Returns the underlying raw buffer",36,null],[11,"dimensions","","The width and height of this image.",36,null],[11,"width","","The width of this image.",36,null],[11,"height","","The height of this image.",36,null],[11,"pixels","","Returns an iterator over the pixels of this image.",36,null],[11,"enumerate_pixels","","Enumerates over the pixels of the image.\nThe iterator yields the coordinates of each pixel\nalong with a reference to them.",36,null],[11,"get_pixel","","Gets a reference to the pixel at location `(x, y)`",36,null],[11,"pixels_mut","","Returns an iterator over the mutable pixels of this image.\nThe iterator yields the coordinates of each pixel\nalong with a mutable reference to them.",36,null],[11,"enumerate_pixels_mut","","Enumerates over the pixels of the image.",36,null],[11,"get_pixel_mut","","Gets a reference to the mutable pixel at location `(x, y)`",36,null],[11,"put_pixel","","Puts a pixel at location `(x, y)`",36,null],[11,"save","","Saves the buffer to a file at the path specified.",36,null],[11,"deref","","",36,null],[11,"deref_mut","","",36,null],[11,"index","","",36,null],[11,"index_mut","","",36,null],[11,"clone","","",36,null],[11,"dimensions","","",36,null],[11,"bounds","","",36,null],[11,"get_pixel","","",36,null],[11,"get_pixel_mut","","",36,null],[11,"put_pixel","","",36,null],[11,"blend_pixel","","Put a pixel at location (x, y), taking into account alpha channels\nDEPRECATED: This method will be removed. Blend the pixel directly instead.",36,null],[11,"new","","Creates a new image buffer based on a `Vec<P::Subpixel>`.",36,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"imagebuffer"}}],[11,"from_pixel","","Constructs a new ImageBuffer by copying a pixel",36,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"p"}],"output":{"name":"imagebuffer"}}],[11,"from_fn","","Constructs a new ImageBuffer by repeated application of the supplied function.\nThe arguments to the function are the pixel's x and y coordinates.",36,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"f"}],"output":{"name":"imagebuffer"}}],[11,"from_vec","","Creates an image buffer out of an existing buffer.\nReturns None if the buffer is not big enough.",36,{"inputs":[{"name":"u32"},{"name":"u32"},{"name":"vec"}],"output":{"name":"option"}}],[11,"into_vec","","Consumes the image buffer and returns the underlying data\nas an owned buffer",36,null],[11,"new","","Contructs a new frame iterator",37,{"inputs":[{"name":"vec"}],"output":{"name":"frames"}}],[11,"clone","","",38,null],[11,"new","","Contructs a new frame",38,{"inputs":[{"name":"rgbaimage"}],"output":{"name":"frame"}}],[11,"from_parts","","Contructs a new frame",38,{"inputs":[{"name":"rgbaimage"},{"name":"u32"},{"name":"u32"},{"name":"ratio"}],"output":{"name":"frame"}}],[11,"delay","","Delay of this frame",38,null],[11,"buffer","","Returns the image buffer",38,null],[11,"into_buffer","","Returns the image buffer",38,null],[11,"left","","Returns the x offset",38,null],[11,"top","","Returns the x offset",38,null],[11,"next","","",37,null],[6,"ImageResult","","Result of an image decoding/encoding process",null,null],[6,"RgbImage","","Sendable Rgb image buffer",null,null],[6,"RgbaImage","","Sendable Rgb + alpha channel image buffer",null,null],[6,"GrayImage","","Sendable grayscale image buffer",null,null],[6,"GrayAlphaImage","","Sendable grayscale + alpha channel image buffer",null,null],[8,"Primitive","","Primitive trait from old stdlib, added max_value",null,null],[8,"Pixel","","A generalized pixel.",null,null],[16,"Subpixel","","The underlying subpixel type.",39,null],[10,"channel_count","","Returns the number of channels of this pixel type.",39,{"inputs":[],"output":{"name":"u8"}}],[10,"channels","","Returns the components as a slice.",39,null],[10,"channels_mut","","Returns the components as a mutable slice",39,null],[10,"color_model","","Returns a string that can help to interprete the meaning each channel\nSee [gimp babl](http://gegl.org/babl/).",39,{"inputs":[],"output":{"name":"str"}}],[10,"color_type","","Returns the ColorType for this pixel format",39,{"inputs":[],"output":{"name":"colortype"}}],[10,"channels4","","Returns the channels of this pixel as a 4 tuple. If the pixel\nhas less than 4 channels the remainder is filled with the maximum value\nTODO deprecate",39,null],[10,"from_channels","","Construct a pixel from the 4 channels a, b, c and d.\nIf the pixel does not contain 4 channels the extra are ignored.\nTODO deprecate",39,{"inputs":[{"name":"subpixel"},{"name":"subpixel"},{"name":"subpixel"},{"name":"subpixel"}],"output":{"name":"self"}}],[10,"from_slice","","Returns a view into a slice.",39,null],[10,"from_slice_mut","","Returns mutable view into a mutable slice.",39,null],[10,"to_rgb","","Convert this pixel to RGB",39,null],[10,"to_rgba","","Convert this pixel to RGB with an alpha channel",39,null],[10,"to_luma","","Convert this pixel to luma",39,null],[10,"to_luma_alpha","","Convert this pixel to luma with an alpha channel",39,null],[10,"map","","Apply the function ```f``` to each channel of this pixel.",39,null],[10,"apply","","Apply the function ```f``` to each channel of this pixel.",39,null],[10,"map_with_alpha","","Apply the function f to each channel except the alpha channel.\nApply the function g to the alpha channel.",39,null],[10,"apply_with_alpha","","Apply the function f to each channel except the alpha channel.\nApply the function g to the alpha channel. Works in-place.",39,null],[10,"map2","","Apply the function ```f``` to each channel of this pixel and\n```other``` pairwise.",39,null],[10,"apply2","","Apply the function ```f``` to each channel of this pixel and\n```other``` pairwise. Works in-place.",39,null],[10,"invert","","Invert this pixel",39,null],[10,"blend","","Blend the color of a given pixel into ourself, taking into account alpha channels",39,null],[8,"ImageDecoder","","The trait that all decoders implement",null,null],[10,"dimensions","","Returns a tuple containing the width and height of the image",40,null],[10,"colortype","","Returns the color type of the image e.g RGB(8) (8bit RGB)",40,null],[10,"row_len","","Returns the length in bytes of one decoded row of the image",40,null],[11,"is_animated","","Returns true if the image is animated",40,null],[11,"into_frames","","Returns the frames of the image\nIf the image is not animated it returns a single frame",40,null],[10,"read_scanline","","Reads one row from the image into buf and returns the row index",40,null],[10,"read_image","","Decodes the entire image and return it as a Vector",40,null],[11,"load_rect","","Decodes a specific region of the image, represented by the rectangle\nstarting from ```x``` and ```y``` and having ```length``` and ```width```",40,null],[8,"GenericImage","","A trait for manipulating images.",null,null],[16,"Pixel","","The type of pixel.",41,null],[10,"dimensions","","The width and height of this image.",41,null],[11,"width","","The width of this image.",41,null],[11,"height","","The height of this image.",41,null],[10,"bounds","","The bounding rectangle of this image.",41,null],[11,"in_bounds","","Returns true if this x, y coordinate is contained inside the image.",41,null],[10,"get_pixel","","Returns the pixel located at (x, y)",41,null],[10,"get_pixel_mut","","Puts a pixel at location (x, y)",41,null],[11,"unsafe_get_pixel","","Returns the pixel located at (x, y)",41,null],[10,"put_pixel","","Put a pixel at location (x, y)",41,null],[11,"unsafe_put_pixel","","Puts a pixel at location (x, y)",41,null],[10,"blend_pixel","","Put a pixel at location (x, y), taking into account alpha channels\nDEPRECATED: This method will be removed. Blend the pixel directly instead.",41,null],[11,"pixels","","Returns an Iterator over the pixels of this image.\nThe iterator yields the coordinates of each pixel\nalong with their value",41,null],[11,"pixels_mut","","Returns an Iterator over mutable pixels of this image.\nThe iterator yields the coordinates of each pixel\nalong with a mutable reference to them.\nDEPRECATED: "This cannot be implemented safely Rust. Please use the image buffer directly.",41,null],[11,"copy_from","","Copies all of the pixels from another image into this image.",41,null],[11,"sub_image","","Returns a subimage that is a view into this image.",41,null],[11,"is_animated","","Returns true if the image is animated",40,null],[11,"into_frames","","Returns the frames of the image\nIf the image is not animated it returns a single frame",40,null],[11,"load_rect","","Decodes a specific region of the image, represented by the rectangle\nstarting from ```x``` and ```y``` and having ```length``` and ```width```",40,null],[11,"width","","The width of this image.",41,null],[11,"height","","The height of this image.",41,null],[11,"in_bounds","","Returns true if this x, y coordinate is contained inside the image.",41,null],[11,"unsafe_get_pixel","","Returns the pixel located at (x, y)",41,null],[11,"unsafe_put_pixel","","Puts a pixel at location (x, y)",41,null],[11,"pixels","","Returns an Iterator over the pixels of this image.\nThe iterator yields the coordinates of each pixel\nalong with their value",41,null],[11,"pixels_mut","","Returns an Iterator over mutable pixels of this image.\nThe iterator yields the coordinates of each pixel\nalong with a mutable reference to them.\nDEPRECATED: "This cannot be implemented safely Rust. Please use the image buffer directly.",41,null],[11,"copy_from","","Copies all of the pixels from another image into this image.",41,null],[11,"sub_image","","Returns a subimage that is a view into this image.",41,null],[11,"expand_palette","","Expands a color palette by re-using the existing buffer.\nAssumes 8 bit per pixel. Uses an optionally transparent index to\nadjust it's alpha value accordingly.",42,null]],"paths":[[3,"Luma"],[3,"LumaA"],[3,"Rgb"],[3,"Rgba"],[4,"ColorType"],[4,"ImageError"],[4,"ImageFormat"],[4,"FilterType"],[4,"DynamicImage"],[3,"NeuQuant"],[8,"ColorMap"],[3,"BiLevel"],[3,"WebpDecoder"],[3,"Frame"],[3,"VP8Decoder"],[3,"PPMEncoder"],[3,"PNGDecoder"],[3,"PNGEncoder"],[3,"ZlibDecoder"],[3,"ZlibEncoder"],[3,"Deflater"],[3,"Inflater"],[3,"Adler32"],[3,"Crc32"],[3,"Component"],[3,"JPEGEncoder"],[3,"JPEGDecoder"],[4,"ColorMode"],[3,"GIFDecoder"],[3,"GIFEncoder"],[4,"ByteOrder"],[3,"TIFFDecoder"],[3,"TGADecoder"],[3,"Pixels"],[3,"MutPixels"],[3,"SubImage"],[3,"ImageBuffer"],[3,"Frames"],[3,"Frame"],[8,"Pixel"],[8,"ImageDecoder"],[8,"GenericImage"],[6,"GrayImage"]]}; initSearch(searchIndex);