\hypertarget{class_image_scrambler}{}\section{Referencia de la Clase Image\+Scrambler}
\label{class_image_scrambler}\index{Image\+Scrambler@{Image\+Scrambler}}
Diagrama de herencias de Image\+Scrambler\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_image_scrambler}
\end{center}
\end{figure}
\subsection*{Métodos públicos}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_image_scrambler_add8fe476a0557f10a1fdae5b2b8e576a}{}\hyperlink{class_image_scrambler_add8fe476a0557f10a1fdae5b2b8e576a}{Image\+Scrambler} (Q\+Widget $\ast$parent=0)\label{class_image_scrambler_add8fe476a0557f10a1fdae5b2b8e576a}

\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_aa0ad5b405d49d1769d7e794f391f8657}{}\hyperlink{class_image_scrambler_aa0ad5b405d49d1769d7e794f391f8657}{$\sim$\+Image\+Scrambler} ()\label{class_image_scrambler_aa0ad5b405d49d1769d7e794f391f8657}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
void \hyperlink{class_image_scrambler_afe4e275f55ee362ea7ce13fcec6f0b26}{crop\+Swap} (Q\+Image \&, int, int, int, int, int, int)
\begin{DoxyCompactList}\small\item\em Function que corta dos cuadrados del mismo tamano de una imagen o sub imagen y luego los intercambia. La funcion recibe dos coordenadas (x0,y0) y (x1,y1) y un ancho y un alto. Entonces intercambia pixel por pixel el cuadrado que se forma desde la coordenada en el tope a la izquierda (x0,y0) a la coordenada abajo derecha (x0+ancho, y0+alto) con el cuadrado formado desde la coordenada en el tope izquierda (x1, y1) hasta la coordenada abajo derecha (x1+width, y1+height). \end{DoxyCompactList}\item 
Q\+Image \hyperlink{class_image_scrambler_a7eb90242d1779b98f48f9abe5ed7d698}{Scramble\+Filter} (Q\+Image image, int, int, int, int, int)
\begin{DoxyCompactList}\small\item\em Funcion que recursivamente revuelve una imagen dividiendola en cuadrados (sub imagenes)\textbackslash{} y luego intercambiandolas. El primer paso que el programa hace es dividir la imagen en two o cuatro cuadrados e intercambia los cuadrados, el resultado de la imagen se divide en cuatros cuadros y cada uno de los cuadros se le aplican los mismos pasos recursivamente. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Slots privados}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_image_scrambler_afa24bbf9d4f71fd0853478a66d74d5f4}{}void \hyperlink{class_image_scrambler_afa24bbf9d4f71fd0853478a66d74d5f4}{on\+\_\+btn\+Load\+New\+Image\+\_\+clicked} ()\label{class_image_scrambler_afa24bbf9d4f71fd0853478a66d74d5f4}

\begin{DoxyCompactList}\small\item\em Funcion que despliega una ventana de busqueda de archivos para cargar una imagen en el G\+U\+I. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_aba8b3a0f8d406c9e48e1d0e9e429a60e}{}void \hyperlink{class_image_scrambler_aba8b3a0f8d406c9e48e1d0e9e429a60e}{on\+\_\+btn\+Save\+\_\+clicked} ()\label{class_image_scrambler_aba8b3a0f8d406c9e48e1d0e9e429a60e}

\begin{DoxyCompactList}\small\item\em Funcion que guarda la imagen revuelta en la computadora. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_a2a548be139a62d30dea82e2797d51ec7}{}void \hyperlink{class_image_scrambler_a2a548be139a62d30dea82e2797d51ec7}{on\+\_\+btn\+Scramble\+Image\+\_\+clicked} ()\label{class_image_scrambler_a2a548be139a62d30dea82e2797d51ec7}

\begin{DoxyCompactList}\small\item\em Funcion que invoca la funcion Scramble\+Filter para revolver la imagen y cargarla en el G\+U\+I. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_a7c3ef8d29bfc424d296e95c6acdb427e}{}void \hyperlink{class_image_scrambler_a7c3ef8d29bfc424d296e95c6acdb427e}{on\+\_\+btn\+Descramble\+Image\+\_\+clicked} ()\label{class_image_scrambler_a7c3ef8d29bfc424d296e95c6acdb427e}

\begin{DoxyCompactList}\small\item\em Funcion que restaura la imagen revuelta a la imagen original. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_a7199f376e7dc4fc4b61145be2dcaaad3}{}void \hyperlink{class_image_scrambler_a7199f376e7dc4fc4b61145be2dcaaad3}{on\+\_\+action\+Load\+\_\+\+Image\+\_\+triggered} ()\label{class_image_scrambler_a7199f376e7dc4fc4b61145be2dcaaad3}

\begin{DoxyCompactList}\small\item\em Funcion que invoca la funcion \hyperlink{class_image_scrambler_afa24bbf9d4f71fd0853478a66d74d5f4}{on\+\_\+btn\+Load\+New\+Image\+\_\+clicked()}. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_aef30dcfeee03fa8aee60fd7ba89815b3}{}void \hyperlink{class_image_scrambler_aef30dcfeee03fa8aee60fd7ba89815b3}{on\+\_\+action\+Save\+\_\+\+Image\+\_\+triggered} ()\label{class_image_scrambler_aef30dcfeee03fa8aee60fd7ba89815b3}

\begin{DoxyCompactList}\small\item\em Funcion que invoca la funcion \hyperlink{class_image_scrambler_aba8b3a0f8d406c9e48e1d0e9e429a60e}{on\+\_\+btn\+Save\+\_\+clicked()}. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_ac7514d09c9ee2b021d803375eba95f74}{}void \hyperlink{class_image_scrambler_ac7514d09c9ee2b021d803375eba95f74}{on\+\_\+action\+Scramble\+\_\+\+Image\+\_\+triggered} ()\label{class_image_scrambler_ac7514d09c9ee2b021d803375eba95f74}

\begin{DoxyCompactList}\small\item\em Funcion que invoca la funcion \hyperlink{class_image_scrambler_a2a548be139a62d30dea82e2797d51ec7}{on\+\_\+btn\+Scramble\+Image\+\_\+clicked()}. \end{DoxyCompactList}\item 
\hypertarget{class_image_scrambler_a80b3b6e575f0b24290d71d202d910fed}{}void \hyperlink{class_image_scrambler_a80b3b6e575f0b24290d71d202d910fed}{on\+\_\+action\+Descramble\+\_\+\+Image\+\_\+triggered} ()\label{class_image_scrambler_a80b3b6e575f0b24290d71d202d910fed}

\begin{DoxyCompactList}\small\item\em Funcion que invoca la funcion \hyperlink{class_image_scrambler_a7c3ef8d29bfc424d296e95c6acdb427e}{on\+\_\+btn\+Descramble\+Image\+\_\+clicked()}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Atributos privados}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_image_scrambler_a9bdaf498f7f4d2b6143aae8ff59ddff3}{}Ui\+::\+Image\+Scrambler $\ast$ {\bfseries ui}\label{class_image_scrambler_a9bdaf498f7f4d2b6143aae8ff59ddff3}

\item 
Q\+Image \hyperlink{class_image_scrambler_a90f0c2de88b3d790ab25460dc2222a60}{original\+Image}
\item 
Q\+Image \hyperlink{class_image_scrambler_a691bd6839008b2ec5dc3bc2933328cc2}{scrambled\+Image}
\item 
int \hyperlink{class_image_scrambler_a4d5951c83206c8cf7bad2c6a9f7387d8}{scramble\+Depth}
\end{DoxyCompactItemize}


\subsection{Documentación de las funciones miembro}
\hypertarget{class_image_scrambler_afe4e275f55ee362ea7ce13fcec6f0b26}{}\index{Image\+Scrambler@{Image\+Scrambler}!crop\+Swap@{crop\+Swap}}
\index{crop\+Swap@{crop\+Swap}!Image\+Scrambler@{Image\+Scrambler}}
\subsubsection[{crop\+Swap}]{\setlength{\rightskip}{0pt plus 5cm}void Image\+Scrambler\+::crop\+Swap (
\begin{DoxyParamCaption}
\item[{Q\+Image \&}]{img, }
\item[{int}]{x0, }
\item[{int}]{y0, }
\item[{int}]{x1, }
\item[{int}]{y1, }
\item[{int}]{width, }
\item[{int}]{height}
\end{DoxyParamCaption}
)}\label{class_image_scrambler_afe4e275f55ee362ea7ce13fcec6f0b26}


Function que corta dos cuadrados del mismo tamano de una imagen o sub imagen y luego los intercambia. La funcion recibe dos coordenadas (x0,y0) y (x1,y1) y un ancho y un alto. Entonces intercambia pixel por pixel el cuadrado que se forma desde la coordenada en el tope a la izquierda (x0,y0) a la coordenada abajo derecha (x0+ancho, y0+alto) con el cuadrado formado desde la coordenada en el tope izquierda (x1, y1) hasta la coordenada abajo derecha (x1+width, y1+height). 


\begin{DoxyParams}{Parámetros}
{\em img} & Referencia a la imagen a la que se le van a intercambiar los cuadros. \\
\hline
{\em x0} & La coordenada arriba izquierda x del primer cuadrado en la imagen. \\
\hline
{\em y0} & La coordenada arriba izquierda y del primer cuadrado en la imagen. \\
\hline
{\em x1} & La coordenada arriba izquierda x del segundo cuadrado en la imagen. \\
\hline
{\em y1} & La coordenada arriba izquierda y del segundo cuadrado en la imagen. \\
\hline
{\em width} & ancho de los cuadrados \\
\hline
{\em height} & altura de los cuadrados \\
\hline
\end{DoxyParams}
\hypertarget{class_image_scrambler_a7eb90242d1779b98f48f9abe5ed7d698}{}\index{Image\+Scrambler@{Image\+Scrambler}!Scramble\+Filter@{Scramble\+Filter}}
\index{Scramble\+Filter@{Scramble\+Filter}!Image\+Scrambler@{Image\+Scrambler}}
\subsubsection[{Scramble\+Filter}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Image Image\+Scrambler\+::\+Scramble\+Filter (
\begin{DoxyParamCaption}
\item[{Q\+Image}]{image, }
\item[{int}]{N, }
\item[{int}]{sx, }
\item[{int}]{sy, }
\item[{int}]{width, }
\item[{int}]{height}
\end{DoxyParamCaption}
)}\label{class_image_scrambler_a7eb90242d1779b98f48f9abe5ed7d698}


Funcion que recursivamente revuelve una imagen dividiendola en cuadrados (sub imagenes)\textbackslash{} y luego intercambiandolas. El primer paso que el programa hace es dividir la imagen en two o cuatro cuadrados e intercambia los cuadrados, el resultado de la imagen se divide en cuatros cuadros y cada uno de los cuadros se le aplican los mismos pasos recursivamente. 


\begin{DoxyParams}{Parámetros}
{\em image} & The image a revolver \\
\hline
{\em N} & La profundidad de la recursion. La imagen se revolvera en 4$^\wedge$\+N cuadrados. \\
\hline
{\em sx} & La coordenada arriba izquierda x inicial de la imagen o sub imagen a dividir. \\
\hline
{\em sy} & La coordenada arriba izquierda y inicial de la imagen o sub imagen a dividir. \\
\hline
{\em width} & Ancho de la imagen recibida \\
\hline
{\em height} & Altura de la imagen recibida \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Devuelve}
la imagen revuelta 
\end{DoxyReturn}


\subsection{Documentación de los datos miembro}
\hypertarget{class_image_scrambler_a90f0c2de88b3d790ab25460dc2222a60}{}\index{Image\+Scrambler@{Image\+Scrambler}!original\+Image@{original\+Image}}
\index{original\+Image@{original\+Image}!Image\+Scrambler@{Image\+Scrambler}}
\subsubsection[{original\+Image}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Image Image\+Scrambler\+::original\+Image\hspace{0.3cm}{\ttfamily [private]}}\label{class_image_scrambler_a90f0c2de88b3d790ab25460dc2222a60}
the original image (imagen original) \hypertarget{class_image_scrambler_a4d5951c83206c8cf7bad2c6a9f7387d8}{}\index{Image\+Scrambler@{Image\+Scrambler}!scramble\+Depth@{scramble\+Depth}}
\index{scramble\+Depth@{scramble\+Depth}!Image\+Scrambler@{Image\+Scrambler}}
\subsubsection[{scramble\+Depth}]{\setlength{\rightskip}{0pt plus 5cm}int Image\+Scrambler\+::scramble\+Depth\hspace{0.3cm}{\ttfamily [private]}}\label{class_image_scrambler_a4d5951c83206c8cf7bad2c6a9f7387d8}
recursive depth (profundidad de la recursion) \hypertarget{class_image_scrambler_a691bd6839008b2ec5dc3bc2933328cc2}{}\index{Image\+Scrambler@{Image\+Scrambler}!scrambled\+Image@{scrambled\+Image}}
\index{scrambled\+Image@{scrambled\+Image}!Image\+Scrambler@{Image\+Scrambler}}
\subsubsection[{scrambled\+Image}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Image Image\+Scrambler\+::scrambled\+Image\hspace{0.3cm}{\ttfamily [private]}}\label{class_image_scrambler_a691bd6839008b2ec5dc3bc2933328cc2}
scrambled image (imagen revuelta) 

La documentación para esta clase fue generada a partir de los siguientes ficheros\+:\begin{DoxyCompactItemize}
\item 
Image\+Scrambler.\+h\item 
Filter.\+cpp\item 
Image\+Scrambler.\+cpp\end{DoxyCompactItemize}
