# Class FileEncodedImage

java.lang.Object
com.codename1.ui.Image
com.codename1.ui.EncodedImage
com.codename1.components.FileEncodedImage

All Implemented Interfaces:
  `ActionSource`

public final class FileEncodedImage extends EncodedImage
An encoded image that stores the actual data of the encoded image in a disk file or resource and loads it only when necessary. The huge advantage is that RAM usage is practically none-existant, it is potentially very slow in worst case scenarios and has the other drawback of requiring the width/height in advanced to work properly.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static FileEncodedImage`
  `create(String fileName, int width, int height)`
  Creates an encoded image that maps to a local file thus allowing to seamlessly fetch files as needed.
  `static FileEncodedImage`
  `create(String fileName, int width, int height, boolean keep)`
  Creates an encoded image that maps to a local file thus allowing to seamlessly fetch files as needed.
  `static FileEncodedImage`
  `create(String fileName, java.io.InputStream i, int width, int height)`
  Creates an encoded image that maps to a local file thus allowing to seamlessly fetch files as needed.
  `byte[]`
  `getImageData()`
  Returns the byte array data backing the image allowing the image to be stored and discarded completely from RAM.

  ### Methods inherited from class EncodedImage

  `asyncLock, create, create, create, create, create, createFromImage, createFromRGB, createMulti, dispose, drawImage, drawImage, getGraphics, getHeight, getImage, getInternal, getWidth, isAnimation, isDisposed, isLocked, isOpaque, lock, modifyAlpha, modifyAlpha, resetCache, rotate, scale, scaled, scaledEncoded, scaledHeight, scaledSmallerRatio, scaledWidth, subImage, toRGB, unlock`

  ### Methods inherited from class Image

  `addActionListener, animate, applyMask, applyMask, applyMaskAutoScale, createImage, createImage, createImage, createImage, createImage, createImage, createImage, createIndexed, createMask, createSVG, exifRotation, exifRotation, exifRotation, fill, fireChangedEvent, flipHorizontally, flipVertically, getExifOrientationTag, getExifOrientationTag, getImageName, getRGB, getRGB, getRGBCached, getSVGDocument, isAlphaMutableImageSupported, isJPEG, isPNG, isSimdOptimizationsEnabled, isSVG, isSVGSupported, mirror, modifyAlphaWithTranslucency, removeActionListener, requiresDrawImage, resetSimdOptimizationsEnabled, rotate180Degrees, rotate270Degrees, rotate90Degrees, scaledLargerRatio, setImageName, setSimdOptimizationsEnabled`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### create

    public static FileEncodedImage create(String fileName, int width, int height)

    Creates an encoded image that maps to a local file thus allowing to seamlessly fetch files as needed. This only works reasonably well for very small files.

    ###### Parameters

    - `fileName`: the name of the file

    - `width`: the width of the file or -1 if unknown (notice that this will improve performance)

    - `height`: the height of the file or -1 if unknown (notice that this will improve performance)

    ###### Returns

    image that will load the file seamlessly

  - ### create

    public static FileEncodedImage create(String fileName, java.io.InputStream i, int width, int height) throws java.io.IOException

    Creates an encoded image that maps to a local file thus allowing to seamlessly fetch files as needed. This only works reasonably well for very small files. This version of the method creates the file from an input stream

    ###### Parameters

    - `fileName`: the name of the file

    - `i`: input stream from which to create the file

    - `width`: the width of the file or -1 if unknown (notice that this will improve performance)

    - `height`: the height of the file or -1 if unknown (notice that this will improve performance)

    ###### Returns

    image that will load the file seamlessly

    Throws:
      `java.io.IOException`

  - ### create

    public static FileEncodedImage create(String fileName, int width, int height, boolean keep)

    Creates an encoded image that maps to a local file thus allowing to seamlessly fetch files as needed. This only works reasonably well for very small files.

    ###### Parameters

    - `fileName`: the name of the file

    - `width`: the width of the file or -1 if unknown (notice that this will improve performance)

    - `height`: the height of the file or -1 if unknown (notice that this will improve performance)

    - `keep`: if set to true keeps the file in RAM once loaded

    ###### Returns

    image that will load the file seamlessly

  - ### getImageData

    public byte[] getImageData()

    Returns the byte array data backing the image allowing the image to be stored and discarded completely from RAM.

    ###### Returns

    byte array used to create the image, e.g. encoded PNG, JPEG etc.

    Overrides:
      `getImageData` in class `EncodedImage`