\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}