\hypertarget{group__Evas__Object__Image}{\section{Image Object Functions}
\label{group__Evas__Object__Image}\index{Image Object Functions@{Image Object Functions}}
}


Here are grouped together functions used to create and manipulate image objects.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void($\ast$ \hyperlink{group__Evas__Object__Image_ga02e823fafa4fdd956b20c59fd5c2b3ab}{Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb} )(void $\ast$data, \hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$o)
\begin{DoxyCompactList}\small\item\em Function signature for the evas object pixels get callback function. \end{DoxyCompactList}\item 
typedef enum \hyperlink{group__Evas__Object__Image_ga84ff1db3d33d85c86d81dbe9046b54bb}{\+\_\+\+Evas\+\_\+\+Colorspace} \hyperlink{group__Evas__Object__Image_ga8c6e60db9c8b83b155ccea52957ff656}{Evas\+\_\+\+Colorspace}
\begin{DoxyCompactList}\small\item\em Colorspaces for pixel data supported by Evas. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Evas__Object__Image_ga84ff1db3d33d85c86d81dbe9046b54bb}{\+\_\+\+Evas\+\_\+\+Colorspace} \{ \\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba0948ad4d06f0f64f757aa673d47ac254}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba5e861cf48ce8169485bb334c31678636}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba77eda7660a21d397912e0d6084300f22}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba69c6f59ef385ef3443caa30ce009f729}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba6d0303ab6ba63b8bf89e16d39105e0f0}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba62976c43a03b2a7e6d851f8c1dbe6b75}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422601\+\_\+\+P\+L}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba2bf760703defba07cc867ff80b9634e2}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+N\+V12601\+\_\+\+P\+L}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba392056bda9bf390c59e5d8f7c06860de}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+T\+M12601\+\_\+\+P\+L}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba480e4616d3570c9788068defe11799ed}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+G\+R\+Y88}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba8190bf314fc58c94a25a1f01d437188b}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaf542a53d281ebcb2195a413f3bc121d2}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbad4644beb1ede03bc148c937c6d9be159}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaf32ee30e57ad4355a11d6b8cbc08e47a}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1\+\_\+\+A\+L\+P\+H\+A}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaebf6852f33660a194ebb92b0d662bd4f}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbab96252101933fb49ee9dc4fbf636dc58}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba8b6ef07a5d2bbe021842fe46f0d1744e}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T2}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba945a44a45fc62ba760834d3519be0bc9}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaef47180a547e9f8eab1efea509f84893}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T4}, 
\\*
\hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbace221f67cb0616159cbfcc0f7f93e640}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5}
 \}
\begin{DoxyCompactList}\small\item\em Colorspaces for pixel data supported by Evas. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Object__Image_ga5fa34fd24e668429507715a92be1cc58}{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if a file extension may be supported by \hyperlink{group__Evas__Object__Image}{Image Object Functions}. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Object__Image_gae40ab40412b1c92fc539457b78f4ccc6}{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Check if a file extension may be supported by \hyperlink{group__Evas__Object__Image}{Image Object Functions}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$ \hyperlink{group__Evas__Object__Image_gadd901a6b181c38dc040537b3fd76fcc6}{evas\+\_\+object\+\_\+image\+\_\+add} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em Creates a new image object on the given Evas {\ttfamily e} canvas. \end{DoxyCompactList}\item 
\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$ \hyperlink{group__Evas__Object__Image_ga0e8cb83d31d02bf583c75925b7cd14d7}{evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add} (\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} $\ast$e)
\begin{DoxyCompactList}\small\item\em Creates a new image object that {\bfseries automatically} scales its bound image to the object's area, on both axis. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_gafe8b60c78ac0d1e3f26a6a872b511368}{evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, void $\ast$data, int size, char $\ast$format, char $\ast$key)
\begin{DoxyCompactList}\small\item\em Sets the data for an image from memory to be loaded. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_gaabe0ddc5e656d6c09f9f4dd85f981279}{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \hyperlink{Evas__Common_8h_ae35ae0b7b909a9e956836b92d63b493d}{Evas\+\_\+\+Native\+\_\+\+Surface} $\ast$surf)
\begin{DoxyCompactList}\small\item\em Set the native surface of a given image of the canvas. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_gae314b3d41feb8c395854d8f03cb1d6b2}{evas\+\_\+object\+\_\+image\+\_\+preload} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} cancel)
\begin{DoxyCompactList}\small\item\em Preload an image object's image data in the background. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Object__Image_ga053a1e4ab2d79edf3fff9dc89f90b355}{evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Clear the source object on a proxy image object. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_ga2c9de2b78628482f61547779521437f2}{evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set} (\hyperlink{group__Evas__Object__Group_ga9e19e6dd1f517a0ba437c0114d3e7c97}{Evas\+\_\+\+Object} $\ast$obj, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} ismask)
\begin{DoxyCompactList}\small\item\em Enable an image to be used as an alpha mask. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set} (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const char $\ast$file, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Set the source file from where an image object must fetch the real image data (it may be an Eet file, besides pure image ones). \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_ga525cd3bf52ec9f335d0d62121adf9562}{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const char $\ast$$\ast$file, const char $\ast$$\ast$key)
\begin{DoxyCompactList}\small\item\em Retrieve the source file from where an image object is to fetch the real image data (it may be an Eet file, besides pure image ones). \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Object__Image_ga8bd6201d1b5c5f0e65600b491c6557e4}{evas\+\_\+object\+\_\+image\+\_\+save} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const char $\ast$file, const char $\ast$key, const char $\ast$flags)
\begin{DoxyCompactList}\small\item\em Save the given image object's contents to an (image) file. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Object__Image_ga53e93ec0f368db0c6c780e01cbbc9249}{evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Check if an image object can be animated (have multiple frames) \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_ga46518b9f2ff1fc849db13b3ebe366026}{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set} (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, int w, int h)
\begin{DoxyCompactList}\small\item\em Set the load size of a given image object's source image. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_gaffdea29e7a6cec374e6aa30bbb4bcca7}{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, int $\ast$w, int $\ast$h)
\begin{DoxyCompactList}\small\item\em Get the load size of a given image object's source image. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Object__Image_gaf79e692448eb80c39da1fd60f8db5dda}{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set} (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} smooth\+\_\+scale)
\begin{DoxyCompactList}\small\item\em Sets whether to use high-\/quality image scaling algorithm on the given image object. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Object__Image_gac0177597371f246ac377782fcc59c5be}{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Retrieves whether the given image object is using high-\/quality image scaling algorithm. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Here are grouped together functions used to create and manipulate image objects. 

They are available to whichever occasion one needs complex imagery on a G\+U\+I that could not be achieved by the other Evas' primitive object types, or to make image manipulations.

Evas will support whichever image file types it was compiled with support to (its image loaders) -- check your software packager for that information and see \hyperlink{group__Evas__Object__Image_ga5fa34fd24e668429507715a92be1cc58}{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get()}.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Basics}{}\subsection{Image object basics}\label{group__Evas__Object__Image_Evas_Object_Image_Basics}
The most common use of image objects -- to display an image on the canvas -- is achieved by a common function triplet\+: 
\begin{DoxyCode}
img = \hyperlink{group__Evas__Object__Image_gadd901a6b181c38dc040537b3fd76fcc6}{evas\_object\_image\_add}(canvas);
\hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\_object\_image\_file\_set}(img, \textcolor{stringliteral}{"path/to/img"}, NULL);
evas\_object\_image\_fill\_set(img, 0, 0, w, h);
\end{DoxyCode}
 The first function, naturally, is creating the image object. Then, one must set an source file on it, so that it knows where to fetch image data from. Next, one must set {\bfseries how to fill the image object's area} with that given pixel data. One could use just a sub-\/region of the original image or even have it tiled repeatedly on the image object. For the common case of having the whole source image to be displayed on the image object, stretched to the destination's size, there's also a function helper, to be used instead of evas\+\_\+object\+\_\+image\+\_\+fill\+\_\+set()\+: 
\begin{DoxyCode}
evas\_object\_image\_filled\_set(img, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE});
\end{DoxyCode}
 See those functions' documentation for more details.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Scale}{}\subsection{Scale and resizing}\label{group__Evas__Object__Image_Evas_Object_Image_Scale}
Resizing of image objects will scale their respective source images to their areas, if they are set to \char`\"{}fill\char`\"{} the object's area (evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+set()). If the user wants any control on the aspect ratio of an image for different sizes, he/she has to take care of that themselves. There are functions to make images to get loaded scaled (up or down) in memory, already, if the user is going to use them at pre-\/determined sizes and wants to save computations.

Evas has even a scale cache, which will take care of caching scaled versions of images with more often usage/hits. Finally, one can have images being rescaled {\bfseries smoothly} by Evas (more computationally expensive) or not.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Performance}{}\subsection{Performance hints}\label{group__Evas__Object__Image_Evas_Object_Image_Performance}
When dealing with image objects, there are some tricks to boost the performance of your application, if it does intense image loading and/or manipulations, as in animations on a U\+I.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Load}{}\subsubsection{Load hints}\label{group__Evas__Object__Image_Evas_Object_Image_Load}
In image viewer applications, for example, the user will be looking at a given image, at full size, and will desire that the navigation to the adjacent images on his/her album be fluid and fast. Thus, while displaying a given image, the program can be on the background loading the next and previous images already, so that displaying them on the sequence is just a matter of repainting the screen (and not decoding image data).

Evas addresses this issue with {\bfseries image pre-\/loading}. The code for the situation above would be something like the following\+: 
\begin{DoxyCode}
prev = \hyperlink{group__Evas__Object__Image_ga0e8cb83d31d02bf583c75925b7cd14d7}{evas\_object\_image\_filled\_add}(canvas);
\hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\_object\_image\_file\_set}(prev, \textcolor{stringliteral}{"/path/to/prev"}, NULL);
\hyperlink{group__Evas__Object__Image_gae314b3d41feb8c395854d8f03cb1d6b2}{evas\_object\_image\_preload}(prev, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE});

next = \hyperlink{group__Evas__Object__Image_ga0e8cb83d31d02bf583c75925b7cd14d7}{evas\_object\_image\_filled\_add}(canvas);
\hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\_object\_image\_file\_set}(next, \textcolor{stringliteral}{"/path/to/next"}, NULL);
\hyperlink{group__Evas__Object__Image_gae314b3d41feb8c395854d8f03cb1d6b2}{evas\_object\_image\_preload}(next, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE});
\end{DoxyCode}


If you're loading images which are too big, consider setting previously it's loading size to something smaller, in case you won't expose them in real size. It may speed up the loading considerably\+: 
\begin{DoxyCode}
\textcolor{comment}{//to load a scaled down version of the image in memory, if that's}
\textcolor{comment}{//the size you'll be displaying it anyway}
evas\_object\_image\_load\_scale\_down\_set(img, zoom);

\textcolor{comment}{//optional: if you know you'll be showing a sub-set of the image's}
\textcolor{comment}{//pixels, you can avoid loading the complementary data}
evas\_object\_image\_load\_region\_set(img, x, y, w, h);
\end{DoxyCode}
 Refer to Elementary's Photocam widget for a high level (smart) object which does lots of loading speed-\/ups for you.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Animation}{}\subsubsection{Animation hints}\label{group__Evas__Object__Image_Evas_Object_Image_Animation}
If you want to animate image objects on a U\+I (what you'd get by concomitant usage of other libraries, like Ecore and Edje), there are also some tips on how to boost the performance of your application. If the animation involves resizing of an image (thus, re-\/scaling), you'd better turn off smooth scaling on it {\bfseries during} the animation, turning it back on afterwards, for less computations. Also, in this case you'd better flag the image object in question not to cache scaled versions of it\+: 
\begin{DoxyCode}
evas\_object\_image\_scale\_hint\_set(wd->img, EVAS\_IMAGE\_SCALE\_HINT\_DYNAMIC);

\textcolor{comment}{// resizing takes place in between}

evas\_object\_image\_scale\_hint\_set(wd->img, EVAS\_IMAGE\_SCALE\_HINT\_STATIC);
\end{DoxyCode}


Finally, movement of opaque images through the canvas is less expensive than of translucid ones, because of blending computations.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Borders}{}\subsection{Borders}\label{group__Evas__Object__Image_Evas_Object_Image_Borders}
Evas provides facilities for one to specify an image's region to be treated specially -- as \char`\"{}borders\char`\"{}. This will make those regions be treated specially on resizing scales, by keeping their aspect. This makes setting frames around other objects on U\+Is easy. See the following figures for a visual explanation\+:~\newline
  
\begin{DoxyImage}
\includegraphics{image-borders}
\caption{width=}
\end{DoxyImage}
   
\begin{DoxyImage}
\includegraphics{border-effect}
\caption{width=}
\end{DoxyImage}
\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Manipulation}{}\subsection{Manipulating pixels}\label{group__Evas__Object__Image_Evas_Object_Image_Manipulation}
Evas image objects can be used to manipulate raw pixels in many ways. The meaning of the data in the pixel arrays will depend on the image's color space, be warned (see next section). You can set your own data as an image's pixel data, fetch an image's pixel data for saving/altering, convert images between different color spaces and even advanced operations like setting a native surface as image objects' data.\hypertarget{group__Evas__Object__Image_Evas_Object_Image_Color_Spaces}{}\subsection{Color spaces}\label{group__Evas__Object__Image_Evas_Object_Image_Color_Spaces}
Image objects may return or accept \char`\"{}image data\char`\"{} in multiple formats. This is based on the color space of an object. Here is a rundown on formats\+:


\begin{DoxyItemize}
\item \hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba0948ad4d06f0f64f757aa673d47ac254}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888}\+: This pixel format is a linear block of pixels, starting at the top-\/left row by row until the bottom right of the image or pixel region. All pixels are 32-\/bit unsigned int's with the high-\/byte being alpha and the low byte being blue in the format A\+R\+G\+B. Alpha may or may not be used by evas depending on the alpha flag of the image, but if not used, should be set to 0xff anyway. ~\newline
~\newline
 This colorspace uses premultiplied alpha. That means that R, G and B cannot exceed A in value. The conversion from non-\/premultiplied colorspace is\+: ~\newline
~\newline
 R = (r $\ast$ a) / 255; G = (g $\ast$ a) / 255; B = (b $\ast$ a) / 255; ~\newline
~\newline
 So 50\% transparent blue will be\+: 0x80000080. This will not be \char`\"{}dark\char`\"{} -\/ just 50\% transparent. Values are 0 == black, 255 == solid or full red, green or blue.
\end{DoxyItemize}
\begin{DoxyItemize}
\item \hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba5e861cf48ce8169485bb334c31678636}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L}\+: This is a pointer-\/list indirected set of Y\+U\+V (Y\+Cb\+Cr) pixel data. This means that the data returned or set is not actual pixel data, but pointers T\+O lines of pixel data. The list of pointers will first be N rows of pointers to the Y plane -\/ pointing to the first pixel at the start of each row in the Y plane. N is the height of the image data in pixels. Each pixel in the Y, U and V planes is 1 byte exactly, packed. The next N / 2 pointers will point to rows in the U plane, and the next N / 2 pointers will point to the V plane rows. U and V planes are half the horizontal and vertical resolution of the Y plane. ~\newline
~\newline
 Row order is top to bottom and row pixels are stored left to right. ~\newline
~\newline
 There is a limitation that these images M\+U\+S\+T be a multiple of 2 pixels in size horizontally or vertically. This is due to the U and V planes being half resolution. Also note that this assumes the itu601 Y\+U\+V colorspace specification. This is defined for standard television and mpeg streams. H\+D\+T\+V may use the itu709 specification. ~\newline
~\newline
 Values are 0 to 255, indicating full or no signal in that plane respectively.
\end{DoxyItemize}
\begin{DoxyItemize}
\item \hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba77eda7660a21d397912e0d6084300f22}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L}\+: Not implemented yet.
\end{DoxyItemize}
\begin{DoxyItemize}
\item \hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba69c6f59ef385ef3443caa30ce009f729}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P}\+: In the process of being implemented in 1 engine only. This may change. ~\newline
~\newline
 This is a pointer to image data for 16-\/bit half-\/word pixel data in 16bpp R\+G\+B 565 format (5 bits red, 6 bits green, 5 bits blue), with the high-\/byte containing red and the low byte containing blue, per pixel. This data is packed row by row from the top-\/left to the bottom right. ~\newline
~\newline
 If the image has an alpha channel enabled there will be an extra alpha plane after the color pixel plane. If not, then this data will not exist and should not be accessed in any way. This plane is a set of pixels with 1 byte per pixel defining the alpha values of all pixels in the image from the top-\/left to the bottom right of the image, row by row. Even though the values of the alpha pixels can be 0 to 255, only values 0 through to 32 are used, 32 being solid and 0 being transparent. ~\newline
~\newline
 R\+G\+B values can be 0 to 31 for red and blue and 0 to 63 for green, with 0 being black and 31 or 63 being full red, green or blue respectively. This colorspace is also pre-\/multiplied like E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888 so\+: ~\newline
~\newline
 R = (r $\ast$ a) / 32; G = (g $\ast$ a) / 32; B = (b $\ast$ a) / 32;
\end{DoxyItemize}
\begin{DoxyItemize}
\item \hyperlink{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba6d0303ab6ba63b8bf89e16d39105e0f0}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8}\+: The image is just a alpha mask (8 bit's per pixel). This is used for alpha masking.
\end{DoxyItemize}

\begin{DoxyWarning}{Warning}
We don't guarantee any proper results if you create a Image object without setting the evas engine.
\end{DoxyWarning}
Some examples on this group of functions can be found \hyperlink{Example_Evas_Images}{here}. 

\subsection{Typedef Documentation}
\hypertarget{group__Evas__Object__Image_ga02e823fafa4fdd956b20c59fd5c2b3ab}{\index{Image Object Functions@{Image Object Functions}!Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb@{Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb}}
\index{Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb@{Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb}!Image Object Functions@{Image Object Functions}}
\subsubsection[{Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ Evas\+\_\+\+Object\+\_\+\+Image\+\_\+\+Pixels\+\_\+\+Get\+\_\+\+Cb)(void $\ast$data, {\bf Evas\+\_\+\+Object} $\ast$o)}}\label{group__Evas__Object__Image_ga02e823fafa4fdd956b20c59fd5c2b3ab}


Function signature for the evas object pixels get callback function. 

\begin{DoxySeeAlso}{See also}
evas\+\_\+object\+\_\+image\+\_\+pixels\+\_\+get()
\end{DoxySeeAlso}
By {\itshape data} it will be passed the private data. By {\itshape o} it will be passed the Evas\+\_\+\+Object image on which the pixels are requested. \hypertarget{group__Evas__Object__Image_ga8c6e60db9c8b83b155ccea52957ff656}{\index{Image Object Functions@{Image Object Functions}!Evas\+\_\+\+Colorspace@{Evas\+\_\+\+Colorspace}}
\index{Evas\+\_\+\+Colorspace@{Evas\+\_\+\+Colorspace}!Image Object Functions@{Image Object Functions}}
\subsubsection[{Evas\+\_\+\+Colorspace}]{\setlength{\rightskip}{0pt plus 5cm}typedef enum {\bf \+\_\+\+Evas\+\_\+\+Colorspace}  {\bf Evas\+\_\+\+Colorspace}}}\label{group__Evas__Object__Image_ga8c6e60db9c8b83b155ccea52957ff656}


Colorspaces for pixel data supported by Evas. 

Colorspaces for pixel data supported by Evas 

\subsection{Enumeration Type Documentation}
\hypertarget{group__Evas__Object__Image_ga84ff1db3d33d85c86d81dbe9046b54bb}{\index{Image Object Functions@{Image Object Functions}!\+\_\+\+Evas\+\_\+\+Colorspace@{\+\_\+\+Evas\+\_\+\+Colorspace}}
\index{\+\_\+\+Evas\+\_\+\+Colorspace@{\+\_\+\+Evas\+\_\+\+Colorspace}!Image Object Functions@{Image Object Functions}}
\subsubsection[{\+\_\+\+Evas\+\_\+\+Colorspace}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Evas\+\_\+\+Colorspace}}}\label{group__Evas__Object__Image_ga84ff1db3d33d85c86d81dbe9046b54bb}


Colorspaces for pixel data supported by Evas. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba0948ad4d06f0f64f757aa673d47ac254}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+R\+G\+B8888}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba0948ad4d06f0f64f757aa673d47ac254}
}]A\+R\+G\+B 32 bits per pixel, high-\/byte is Alpha, accessed 1 32bit word at a time. \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba5e861cf48ce8169485bb334c31678636}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P601\+\_\+\+P\+L}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba5e861cf48ce8169485bb334c31678636}
}]Y\+Cb\+Cr 4\+:2\+:2 Planar, I\+T\+U.\+B\+T-\/601 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba77eda7660a21d397912e0d6084300f22}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422\+P709\+\_\+\+P\+L}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba77eda7660a21d397912e0d6084300f22}
}]Y\+Cb\+Cr 4\+:2\+:2 Planar, I\+T\+U.\+B\+T-\/709 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba69c6f59ef385ef3443caa30ce009f729}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B565\+\_\+\+A5\+P}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba69c6f59ef385ef3443caa30ce009f729}
}]16bit rgb565 + Alpha plane at end -\/ 5 bits of the 8 being used per alpha byte \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba6d0303ab6ba63b8bf89e16d39105e0f0}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+G\+R\+Y8}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba6d0303ab6ba63b8bf89e16d39105e0f0}
}]8bit grayscale \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422601\+\_\+\+P\+L}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422601\+\_\+\+P\+L}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba62976c43a03b2a7e6d851f8c1dbe6b75}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R422601\+\_\+\+P\+L}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba62976c43a03b2a7e6d851f8c1dbe6b75}
}]Y\+Cb\+Cr 4\+:2\+:2, I\+T\+U.\+B\+T-\/601 specifications. The data pointed to is just an array of row pointer, pointing to line of Y,Cb,Y,Cr bytes \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+N\+V12601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+N\+V12601\+\_\+\+P\+L}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+N\+V12601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+N\+V12601\+\_\+\+P\+L}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba2bf760703defba07cc867ff80b9634e2}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+N\+V12601\+\_\+\+P\+L}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba2bf760703defba07cc867ff80b9634e2}
}]Y\+Cb\+Cr 4\+:2\+:0, I\+T\+U.\+B\+T-\/601 specification. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb,Cr rows. \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+T\+M12601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+T\+M12601\+\_\+\+P\+L}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+T\+M12601\+\_\+\+P\+L@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+T\+M12601\+\_\+\+P\+L}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba392056bda9bf390c59e5d8f7c06860de}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+Y\+C\+B\+C\+R420\+T\+M12601\+\_\+\+P\+L}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba392056bda9bf390c59e5d8f7c06860de}
}]Y\+Cb\+Cr 4\+:2\+:0, I\+T\+U.\+B\+T-\/601 specification. The data pointed to is just an array of tiled row pointer, pointing to the Y rows, then the Cb,Cr rows. \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+G\+R\+Y88@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+G\+R\+Y88}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+G\+R\+Y88@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+G\+R\+Y88}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba480e4616d3570c9788068defe11799ed}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+A\+G\+R\+Y88}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba480e4616d3570c9788068defe11799ed}
}]A\+Y 8bits Alpha and 8bits Grey, accessed 1 16bits at a time. \index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba8190bf314fc58c94a25a1f01d437188b}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba8190bf314fc58c94a25a1f01d437188b}
}]Open\+G\+L E\+T\+C1 encoding of R\+G\+B texture (4 bit per pixel) \begin{DoxySince}{Since}
1.\+10 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaf542a53d281ebcb2195a413f3bc121d2}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaf542a53d281ebcb2195a413f3bc121d2}
}]Open\+G\+L G\+L\+\_\+\+C\+O\+M\+P\+R\+E\+S\+S\+E\+D\+\_\+\+R\+G\+B8\+\_\+\+E\+T\+C2 texture compression format (4 bit per pixel) \begin{DoxySince}{Since}
1.\+10 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbad4644beb1ede03bc148c937c6d9be159}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbad4644beb1ede03bc148c937c6d9be159}
}]Open\+G\+L G\+L\+\_\+\+C\+O\+M\+P\+R\+E\+S\+S\+E\+D\+\_\+\+R\+G\+B\+A8\+\_\+\+E\+T\+C2\+\_\+\+E\+A\+C texture compression format, supports alpha (8 bit per pixel) \begin{DoxySince}{Since}
1.\+10 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1\+\_\+\+A\+L\+P\+H\+A@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1\+\_\+\+A\+L\+P\+H\+A}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1\+\_\+\+A\+L\+P\+H\+A@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1\+\_\+\+A\+L\+P\+H\+A}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaf32ee30e57ad4355a11d6b8cbc08e47a}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+E\+T\+C1\+\_\+\+A\+L\+P\+H\+A}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaf32ee30e57ad4355a11d6b8cbc08e47a}
}]E\+T\+C1 with alpha support using two planes\+: E\+T\+C1 R\+G\+B and E\+T\+C1 grey for alpha. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaebf6852f33660a194ebb92b0d662bd4f}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaebf6852f33660a194ebb92b0d662bd4f}
}]Open\+G\+L C\+O\+M\+P\+R\+E\+S\+S\+E\+D\+\_\+\+R\+G\+B\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1\+\_\+\+E\+X\+T format with R\+G\+B only. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbab96252101933fb49ee9dc4fbf636dc58}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbab96252101933fb49ee9dc4fbf636dc58}
}]Open\+G\+L C\+O\+M\+P\+R\+E\+S\+S\+E\+D\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T1\+\_\+\+E\+X\+T format with R\+G\+B\+A punchthrough. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T2@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T2}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T2@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T2}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba8b6ef07a5d2bbe021842fe46f0d1744e}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T2}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba8b6ef07a5d2bbe021842fe46f0d1744e}
}]Direct\+Draw D\+X\+T2 format with premultiplied R\+G\+B\+A. Not supported by Open\+G\+L itself. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba945a44a45fc62ba760834d3519be0bc9}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bba945a44a45fc62ba760834d3519be0bc9}
}]Open\+G\+L C\+O\+M\+P\+R\+E\+S\+S\+E\+D\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T3\+\_\+\+E\+X\+T format with R\+G\+B\+A. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T4@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T4}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T4@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T4}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaef47180a547e9f8eab1efea509f84893}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T4}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbaef47180a547e9f8eab1efea509f84893}
}]Direct\+Draw D\+X\+T4 format with premultiplied R\+G\+B\+A. Not supported by Open\+G\+L itself. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\index{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5}!Image Object Functions@{Image Object Functions}}\index{Image Object Functions@{Image Object Functions}!E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5@{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5}}\item[{\em 
\hypertarget{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbace221f67cb0616159cbfcc0f7f93e640}{E\+V\+A\+S\+\_\+\+C\+O\+L\+O\+R\+S\+P\+A\+C\+E\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5}\label{group__Evas__Object__Image_gga84ff1db3d33d85c86d81dbe9046b54bbace221f67cb0616159cbfcc0f7f93e640}
}]Open\+G\+L C\+O\+M\+P\+R\+E\+S\+S\+E\+D\+\_\+\+R\+G\+B\+A\+\_\+\+S3\+T\+C\+\_\+\+D\+X\+T5\+\_\+\+E\+X\+T format with R\+G\+B\+A. \begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\end{description}
\end{Desc}


\subsection{Function Documentation}
\hypertarget{group__Evas__Object__Image_ga5fa34fd24e668429507715a92be1cc58}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get}}
\index{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga5fa34fd24e668429507715a92be1cc58}


Check if a file extension may be supported by \hyperlink{group__Evas__Object__Image}{Image Object Functions}. 


\begin{DoxyParams}{Parameters}
{\em file} & The file to check \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if we may be able to open it, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} if it's unlikely. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1
\end{DoxySince}
If file is a Eina\+\_\+\+Stringshare, use directly \hyperlink{group__Evas__Object__Image_gae40ab40412b1c92fc539457b78f4ccc6}{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get}.

This functions is threadsafe. 

References eina\+\_\+stringshare\+\_\+add(), and eina\+\_\+stringshare\+\_\+del().

\hypertarget{group__Evas__Object__Image_gae40ab40412b1c92fc539457b78f4ccc6}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get}}
\index{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+fast\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gae40ab40412b1c92fc539457b78f4ccc6}


Check if a file extension may be supported by \hyperlink{group__Evas__Object__Image}{Image Object Functions}. 


\begin{DoxyParams}{Parameters}
{\em file} & The file to check, it should be an Eina\+\_\+\+Stringshare. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if we may be able to open it, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} if it's unlikely. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1
\end{DoxySince}
This functions is threadsafe. \hypertarget{group__Evas__Object__Image_gadd901a6b181c38dc040537b3fd76fcc6}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+add@{evas\+\_\+object\+\_\+image\+\_\+add}}
\index{evas\+\_\+object\+\_\+image\+\_\+add@{evas\+\_\+object\+\_\+image\+\_\+add}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Object}$\ast$ evas\+\_\+object\+\_\+image\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gadd901a6b181c38dc040537b3fd76fcc6}


Creates a new image object on the given Evas {\ttfamily e} canvas. 


\begin{DoxyParams}{Parameters}
{\em e} & The given canvas. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The created image object handle.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
If you intend to {\bfseries display} an image somehow in a G\+U\+I, besides binding it to a real image file/source (with \hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set()}, for example), you'll have to tell this image object how to fill its space with the pixels it can get from the source. See \hyperlink{group__Evas__Object__Image_ga0e8cb83d31d02bf583c75925b7cd14d7}{evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add()}, for a helper on the common case of scaling up an image source to the whole area of the image object.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
evas\+\_\+object\+\_\+image\+\_\+fill\+\_\+set()
\end{DoxySeeAlso}
Example\+: 
\begin{DoxyCode}
1 img = evas\_object\_image\_add(canvas);
2 evas\_object\_image\_file\_set(img, "/path/to/img", NULL);
\end{DoxyCode}
 

Referenced by ecore\+\_\+evas\+\_\+cursor\+\_\+set(), ecore\+\_\+evas\+\_\+ews\+\_\+new(), ecore\+\_\+evas\+\_\+object\+\_\+image\+\_\+new(), ethumb\+\_\+dup(), ethumb\+\_\+new(), and evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add().

\hypertarget{group__Evas__Object__Image_ga0e8cb83d31d02bf583c75925b7cd14d7}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add@{evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add}}
\index{evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add@{evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Object}$\ast$ evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf Evas} $\ast$}]{e}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga0e8cb83d31d02bf583c75925b7cd14d7}


Creates a new image object that {\bfseries automatically} scales its bound image to the object's area, on both axis. 


\begin{DoxyParams}{Parameters}
{\em e} & The given canvas. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The created image object handle.
\end{DoxyReturn}
This is a helper function around \hyperlink{group__Evas__Object__Image_gadd901a6b181c38dc040537b3fd76fcc6}{evas\+\_\+object\+\_\+image\+\_\+add()} and evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+set(). It has the same effect of applying those functions in sequence, which is a very common use case.

\begin{DoxyNote}{Note}
Whenever this object gets resized, the bound image will be rescaled, too.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Object__Image_gadd901a6b181c38dc040537b3fd76fcc6}{evas\+\_\+object\+\_\+image\+\_\+add()} 

evas\+\_\+object\+\_\+image\+\_\+filled\+\_\+set() 

evas\+\_\+object\+\_\+image\+\_\+fill\+\_\+set() 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{ecore_evas_buffer_example_02_8c-example}{ecore\+\_\+evas\+\_\+buffer\+\_\+example\+\_\+02.\+c}, \hyperlink{edje-basic_8c-example}{edje-\/basic.\+c}, \hyperlink{edje-signals-messages_8c-example}{edje-\/signals-\/messages.\+c}, \hyperlink{ephysics_logo_8c-example}{ephysics\+\_\+logo.\+c}, \hyperlink{evas-aspect-hints_8c-example}{evas-\/aspect-\/hints.\+c}, \hyperlink{evas-box_8c-example}{evas-\/box.\+c}, \hyperlink{evas-events_8c-example}{evas-\/events.\+c}, \hyperlink{evas-hints_8c-example}{evas-\/hints.\+c}, \hyperlink{evas-images_8c-example}{evas-\/images.\+c}, \hyperlink{evas-images2_8c-example}{evas-\/images2.\+c}, \hyperlink{evas-map-utils_8c-example}{evas-\/map-\/utils.\+c}, \hyperlink{evas-object-manipulation_8c-example}{evas-\/object-\/manipulation.\+c}, \hyperlink{evas-smart-interface_8c-example}{evas-\/smart-\/interface.\+c}, \hyperlink{evas-smart-object_8c-example}{evas-\/smart-\/object.\+c}, and \hyperlink{evas-text_8c-example}{evas-\/text.\+c}.\end{Desc}


References evas\+\_\+object\+\_\+image\+\_\+add().

\hypertarget{group__Evas__Object__Image_gafe8b60c78ac0d1e3f26a6a872b511368}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set}}
\index{evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+memfile\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Object} $\ast$}]{obj, }
\item[{void $\ast$}]{data, }
\item[{int}]{size, }
\item[{char $\ast$}]{format, }
\item[{char $\ast$}]{key}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gafe8b60c78ac0d1e3f26a6a872b511368}


Sets the data for an image from memory to be loaded. 

This is the same as \hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set()} but the file to be loaded may exist at an address in memory (the data for the file, not the filename itself). The {\ttfamily data} at the address is copied and stored for future use, so no {\ttfamily data} needs to be kept after this call is made. It will be managed and freed for you when no longer needed. The {\ttfamily size} is limited to 2 gigabytes in size, and must be greater than 0. A {\ttfamily N\+U\+L\+L} {\ttfamily data} pointer is also invalid. Set the filename to {\ttfamily N\+U\+L\+L} to reset to empty state and have the image file data freed from memory using \hyperlink{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set()}.

The {\ttfamily format} is optional (pass {\ttfamily N\+U\+L\+L} if you don't need/use it). It is used to help Evas guess better which loader to use for the data. It may simply be the \char`\"{}extension\char`\"{} of the file as it would normally be on disk such as \char`\"{}jpg\char`\"{} or \char`\"{}png\char`\"{} or \char`\"{}gif\char`\"{} etc.


\begin{DoxyParams}{Parameters}
{\em obj} & The given image object. \\
\hline
{\em data} & The image file data address \\
\hline
{\em size} & The size of the image file data in bytes \\
\hline
{\em format} & The format of the file (optional), or {\ttfamily N\+U\+L\+L} if not needed \\
\hline
{\em key} & The image key in file, or {\ttfamily N\+U\+L\+L}. \\
\hline
\end{DoxyParams}


References eina\+\_\+file\+\_\+close(), eina\+\_\+file\+\_\+virtualize(), and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Evas__Object__Image_gaabe0ddc5e656d6c09f9f4dd85f981279}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set}}
\index{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Object} $\ast$}]{obj, }
\item[{{\bf Evas\+\_\+\+Native\+\_\+\+Surface} $\ast$}]{surf}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gaabe0ddc5e656d6c09f9f4dd85f981279}


Set the native surface of a given image of the canvas. 


\begin{DoxyParams}{Parameters}
{\em obj} & The given canvas pointer. \\
\hline
{\em surf} & The new native surface.\\
\hline
\end{DoxyParams}
This function sets a native surface of a given canvas image. 

References E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+L, evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+add(), and evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del\+\_\+full().

\hypertarget{group__Evas__Object__Image_gae314b3d41feb8c395854d8f03cb1d6b2}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+preload@{evas\+\_\+object\+\_\+image\+\_\+preload}}
\index{evas\+\_\+object\+\_\+image\+\_\+preload@{evas\+\_\+object\+\_\+image\+\_\+preload}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+preload}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+preload (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Object} $\ast$}]{obj, }
\item[{{\bf Eina\+\_\+\+Bool}}]{cancel}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gae314b3d41feb8c395854d8f03cb1d6b2}


Preload an image object's image data in the background. 


\begin{DoxyParams}{Parameters}
{\em obj} & The given image object. \\
\hline
{\em cancel} & {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} will add it the preloading work queue, {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} will remove it (if it was issued before).\\
\hline
\end{DoxyParams}
This function requests the preload of the data image in the background. The work is queued before being processed (because there might be other pending requests of this type).

Whenever the image data gets loaded, Evas will call \hyperlink{Evas__Common_8h_a99e208e463a20499aabe6faac8a8cb8aa5cd5ca5f4dcd51dd2429f020cb2dfa9e}{E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+I\+M\+A\+G\+E\+\_\+\+P\+R\+E\+L\+O\+A\+D\+E\+D} registered callbacks on {\ttfamily obj} (what may be immediately, if the data was already preloaded before).

Use {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} for {\ttfamily cancel} on scenarios where you don't need the image data preloaded anymore.

\begin{DoxyNote}{Note}
Any \hyperlink{group__Evas__Font__Group_ga9cbc13661584e49fb9d9cdab514a1eeb}{evas\+\_\+object\+\_\+show()} call after \hyperlink{group__Evas__Object__Image_gae314b3d41feb8c395854d8f03cb1d6b2}{evas\+\_\+object\+\_\+image\+\_\+preload()} will make the latter to be {\bfseries cancelled}, with the loading process now taking place {\bfseries synchronously} (and, thus, blocking the return of the former until the image is loaded). It is highly advisable, then, that the user preload an image with it being {\bfseries hidden}, just to be shown on the \hyperlink{Evas__Common_8h_a99e208e463a20499aabe6faac8a8cb8aa5cd5ca5f4dcd51dd2429f020cb2dfa9e}{E\+V\+A\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+I\+M\+A\+G\+E\+\_\+\+P\+R\+E\+L\+O\+A\+D\+E\+D} event's callback. 
\end{DoxyNote}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{evas-images2_8c-example}{evas-\/images2.\+c}.\end{Desc}
\hypertarget{group__Evas__Object__Image_ga053a1e4ab2d79edf3fff9dc89f90b355}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset@{evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset}}
\index{evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset@{evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+object\+\_\+image\+\_\+source\+\_\+unset (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Object} $\ast$}]{obj}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga053a1e4ab2d79edf3fff9dc89f90b355}


Clear the source object on a proxy image object. 


\begin{DoxyParams}{Parameters}
{\em obj} & Image object to clear source of. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} on error.
\end{DoxyReturn}
This is equivalent to calling evas\+\_\+object\+\_\+image\+\_\+source\+\_\+set() with a {\ttfamily N\+U\+L\+L} source. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.

\hypertarget{group__Evas__Object__Image_ga2c9de2b78628482f61547779521437f2}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set}}
\index{evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Object} $\ast$}]{obj, }
\item[{{\bf Eina\+\_\+\+Bool}}]{ismask}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga2c9de2b78628482f61547779521437f2}


Enable an image to be used as an alpha mask. 

This will set any flags, and discard any excess image data not used as an alpha mask.

Note there is little point in using a image as alpha mask unless it has an alpha channel.


\begin{DoxyParams}{Parameters}
{\em obj} & Object to use as an alpha mask. \\
\hline
{\em ismask} & Use image as alphamask, must be true. \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set}}
\index{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eo} $\ast$}]{obj, }
\item[{const char $\ast$}]{file, }
\item[{const char $\ast$}]{key}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gac27fd0ceabe5f56607b7a86d71577df1}


Set the source file from where an image object must fetch the real image data (it may be an Eet file, besides pure image ones). 

If the file supports multiple data stored in it (as Eet files do), you can specify the key to be used as the index of the image in this file.

Example\+: 
\begin{DoxyCode}
1 img = evas\_object\_image\_add(canvas);
2 evas\_object\_image\_file\_set(img, "/path/to/img", NULL);
3 err = evas\_object\_image\_load\_error\_get(img);
4 if (err != EVAS\_LOAD\_ERROR\_NONE)
5 \{
6 fprintf(stderr, "could not load image '%s'. error string is \(\backslash\)"%s\(\backslash\)"\(\backslash\)n",
7 valid\_path, evas\_load\_error\_str(err));
8 \}
9 else
10 \{
11 evas\_object\_image\_fill\_set(img, 0, 0, w, h);
12 evas\_object\_resize(img, w, h);
13 evas\_object\_show(img);
14 \}
\end{DoxyCode}



\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em file} & The image file path. \\
\hline
\mbox{\tt in}  & {\em key} & The image key in {\ttfamily file} (if its an Eet one), or {\ttfamily N\+U\+L\+L}, otherwise. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{ecore_evas_buffer_example_02_8c-example}{ecore\+\_\+evas\+\_\+buffer\+\_\+example\+\_\+02.\+c}, \hyperlink{edje-basic_8c-example}{edje-\/basic.\+c}, \hyperlink{edje-signals-messages_8c-example}{edje-\/signals-\/messages.\+c}, \hyperlink{ephysics_logo_8c-example}{ephysics\+\_\+logo.\+c}, \hyperlink{evas-aspect-hints_8c-example}{evas-\/aspect-\/hints.\+c}, \hyperlink{evas-box_8c-example}{evas-\/box.\+c}, \hyperlink{evas-events_8c-example}{evas-\/events.\+c}, \hyperlink{evas-hints_8c-example}{evas-\/hints.\+c}, \hyperlink{evas-images_8c-example}{evas-\/images.\+c}, \hyperlink{evas-images2_8c-example}{evas-\/images2.\+c}, \hyperlink{evas-map-utils_8c-example}{evas-\/map-\/utils.\+c}, \hyperlink{evas-object-manipulation_8c-example}{evas-\/object-\/manipulation.\+c}, \hyperlink{evas-smart-interface_8c-example}{evas-\/smart-\/interface.\+c}, \hyperlink{evas-smart-object_8c-example}{evas-\/smart-\/object.\+c}, and \hyperlink{evas-text_8c-example}{evas-\/text.\+c}.\end{Desc}


Referenced by ecore\+\_\+evas\+\_\+cursor\+\_\+set().

\hypertarget{group__Evas__Object__Image_ga525cd3bf52ec9f335d0d62121adf9562}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get}}
\index{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+file\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{const char $\ast$$\ast$}]{file, }
\item[{const char $\ast$$\ast$}]{key}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga525cd3bf52ec9f335d0d62121adf9562}


Retrieve the source file from where an image object is to fetch the real image data (it may be an Eet file, besides pure image ones). 

You must {\bfseries not} modify the strings on the returned pointers.

\begin{DoxyNote}{Note}
Use {\ttfamily N\+U\+L\+L} pointers on the file components you're not interested in\+: they'll be ignored by the function.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em file} & The image file path. \\
\hline
\mbox{\tt out}  & {\em key} & The image key in {\ttfamily file} (if its an Eet one), or {\ttfamily N\+U\+L\+L}, otherwise. \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Object__Image_ga8bd6201d1b5c5f0e65600b491c6557e4}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+save@{evas\+\_\+object\+\_\+image\+\_\+save}}
\index{evas\+\_\+object\+\_\+image\+\_\+save@{evas\+\_\+object\+\_\+image\+\_\+save}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+save}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+object\+\_\+image\+\_\+save (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{const char $\ast$}]{file, }
\item[{const char $\ast$}]{key, }
\item[{const char $\ast$}]{flags}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga8bd6201d1b5c5f0e65600b491c6557e4}


Save the given image object's contents to an (image) file. 

The extension suffix on {\ttfamily file} will determine which {\bfseries saver module} Evas is to use when saving, thus the final file's format. If the file supports multiple data stored in it (Eet ones), you can specify the key to be used as the index of the image in it.

You can specify some flags when saving the image. Currently acceptable flags are {\ttfamily quality} and {\ttfamily compress}. Eg.\+: {\ttfamily \char`\"{}quality=100 compress=9\char`\"{}} 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em file} & The filename to be used to save the image (extension obligatory). \\
\hline
\mbox{\tt in}  & {\em key} & The image key in the file (if an Eet one), or {\ttfamily N\+U\+L\+L}, otherwise. \\
\hline
\mbox{\tt in}  & {\em flags} & String containing the flags to be used ({\ttfamily N\+U\+L\+L} for none). \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{evas-images2_8c-example}{evas-\/images2.\+c}.\end{Desc}
\hypertarget{group__Evas__Object__Image_ga53e93ec0f368db0c6c780e01cbbc9249}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get}}
\index{evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga53e93ec0f368db0c6c780e01cbbc9249}


Check if an image object can be animated (have multiple frames) 

\begin{DoxyReturn}{Returns}
whether obj support animation
\end{DoxyReturn}
This returns if the image file of an image object is capable of animation such as an animated gif file might. This is only useful to be called once the image object file has been set.

Example\+: 
\begin{DoxyCode}
1 extern Evas\_Object *obj;
2 
3 if (evas\_object\_image\_animated\_get(obj))
4 \{
5 int frame\_count;
6 int loop\_count;
7 Evas\_Image\_Animated\_Loop\_Hint loop\_type;
8 double duration;
9 
10 frame\_count = evas\_object\_image\_animated\_frame\_count\_get(obj);
11 printf("This image has %d frames\(\backslash\)n",frame\_count);
12 
13 duration = evas\_object\_image\_animated\_frame\_duration\_get(obj,1,0);
14 printf("Frame 1's duration is %f. You had better set object's frame to 2 after this duration using
       timer\(\backslash\)n");
15 
16 loop\_count = evas\_object\_image\_animated\_loop\_count\_get(obj);
17 printf("loop count is %d. You had better run loop %d times\(\backslash\)n",loop\_count,loop\_count);
18 
19 loop\_type = evas\_object\_image\_animated\_loop\_type\_get(obj);
20 if (loop\_type == EVAS\_IMAGE\_ANIMATED\_HINT\_LOOP)
21 printf("You had better set frame like 1->2->3->1->2->3...\(\backslash\)n");
22 else if (loop\_type == EVAS\_IMAGE\_ANIMATED\_HINT\_PINGPONG)
23 printf("You had better set frame like 1->2->3->2->1->2...\(\backslash\)n");
24 else
25 printf("Unknown loop type\(\backslash\)n");
26 
27 evas\_object\_image\_animated\_frame\_set(obj,1);
28 printf("You set image object's frame to 1. You can see frame 1\(\backslash\)n");
29 \}
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Object__Image_ga53e93ec0f368db0c6c780e01cbbc9249}{evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+get()} 

evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+frame\+\_\+count\+\_\+get() 

evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+loop\+\_\+type\+\_\+get() 

evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+loop\+\_\+count\+\_\+get() 

evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+frame\+\_\+duration\+\_\+get() 

evas\+\_\+object\+\_\+image\+\_\+animated\+\_\+frame\+\_\+set() 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}
\hypertarget{group__Evas__Object__Image_ga46518b9f2ff1fc849db13b3ebe366026}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set}}
\index{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eo} $\ast$}]{obj, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_ga46518b9f2ff1fc849db13b3ebe366026}


Set the load size of a given image object's source image. 

This function sets a new geometry size for the given canvas image. The image will be loaded into memory as if it was the set size instead of the original size.

\begin{DoxyNote}{Note}
The size of a given image object's source image will be less than or equal to the size of {\ttfamily w} and {\ttfamily h}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Object__Image_gaffdea29e7a6cec374e6aa30bbb4bcca7}{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get()}
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em w} & The new width of the image's load size. \\
\hline
\mbox{\tt in}  & {\em h} & The new height of the image's load size. \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Object__Image_gaffdea29e7a6cec374e6aa30bbb4bcca7}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get}}
\index{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{int $\ast$}]{w, }
\item[{int $\ast$}]{h}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gaffdea29e7a6cec374e6aa30bbb4bcca7}


Get the load size of a given image object's source image. 

This function gets the geometry size set manually for the given canvas image.

\begin{DoxyNote}{Note}
Use {\ttfamily N\+U\+L\+L} pointers on the size components you're not interested in\+: they'll be ignored by the function. 

{\ttfamily w} and {\ttfamily h} will be set with the image's loading size only if the image's load size is set manually\+: if \hyperlink{group__Evas__Object__Image_ga46518b9f2ff1fc849db13b3ebe366026}{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set()} has not been called, {\ttfamily w} and {\ttfamily h} will be set with 0.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Object__Image_ga46518b9f2ff1fc849db13b3ebe366026}{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+size\+\_\+set()} for more details
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em w} & The new width of the image's load size. \\
\hline
\mbox{\tt out}  & {\em h} & The new height of the image's load size. \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Object__Image_gaf79e692448eb80c39da1fd60f8db5dda}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set}}
\index{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set@{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eo} $\ast$}]{obj, }
\item[{{\bf Eina\+\_\+\+Bool}}]{smooth\+\_\+scale}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gaf79e692448eb80c39da1fd60f8db5dda}


Sets whether to use high-\/quality image scaling algorithm on the given image object. 

When enabled, a higher quality image scaling algorithm is used when scaling images to sizes other than the source image's original one. This gives better results but is more computationally expensive.

\begin{DoxyNote}{Note}
Image objects get created originally with smooth scaling {\bfseries on}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Object__Image_gac0177597371f246ac377782fcc59c5be}{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get()}
\end{DoxySeeAlso}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em smooth\+\_\+scale} & Whether to use smooth scale or not. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples\+: ]\par
\hyperlink{evas-images_8c-example}{evas-\/images.\+c}.\end{Desc}
\hypertarget{group__Evas__Object__Image_gac0177597371f246ac377782fcc59c5be}{\index{Image Object Functions@{Image Object Functions}!evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get}}
\index{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get@{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get}!Image Object Functions@{Image Object Functions}}
\subsubsection[{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}}\label{group__Evas__Object__Image_gac0177597371f246ac377782fcc59c5be}


Retrieves whether the given image object is using high-\/quality image scaling algorithm. 

\begin{DoxyReturn}{Returns}
Whether smooth scale is being used.
\end{DoxyReturn}
See \hyperlink{group__Evas__Object__Image_gaf79e692448eb80c39da1fd60f8db5dda}{evas\+\_\+object\+\_\+image\+\_\+smooth\+\_\+scale\+\_\+set()} for more details. \begin{Desc}
\item[Examples\+: ]\par
\hyperlink{evas-images_8c-example}{evas-\/images.\+c}.\end{Desc}
