\documentclass[12pt,a4paper]{article}

\usepackage{commandes2}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=2cm]{geometry}
%\pagestyle{empty}
\usepackage{pstricks-add}
\usepackage{enumitem}

																	
																	
\title{}
\date{}
\author{}

\begin{document}
\noindent
	\textbf{Nom, prénom :} \dotfill Classe :\ ........
	
\begin{center} \begin{LARGE} \textbf{La photographie numérique} \end{LARGE}\\[5pt]
				\begin{Large}
			-Fiche 1-	\end{Large}				 
\end{center}

L'objectif de ces activités est de s'initier à la manipulation d'une image numérique à l'aide de la librairie PIL de python.

\section*{Activité 1 :}
	
	Ouvrir le logiciel thonny (sur le bureau, dossier \og Autres raccourcis \fg{}, sous-dossier \og SNT \fg{}), puis ouvrir le fichier \og activite1.py \fg{} et l'exécuter.
		\begin{enumerate}
			\item Que fait ce programme ?\\
			.\dotfill
			\item La fonction Image.new crée une nouvelle image. Elle utilise trois paramètres :
				\begin{itemize}
					\item le mode : RGB (Red Green Blue), RGBA (en ajoutant une valeur de transparence), L (noir et blanc), YCbCr, etc.
					\item la taille (largeur, hauteur) en pixels
					\item la couleur (selon le mode choisi) : ce paramètre est facultatif, par défaut la couleur affectée est noire.
				\end{itemize}
				
				\begin{enumerate}
					\item Quel est le mode de l'image créée par le programme ? \dotfill
					\item Quelle est la taille ? la couleur ? \dotfill
				\end{enumerate}
				
			\end{enumerate}
			Si l'on souhaite sauvegarder l'image dans un fichier, on utilise la commande : 
		\begin{center}				
				nom\_de\_l\_image.save("nom\_du\_fichier.png")
		\end{center} 
	
	On peut aussi sauvegarder sous d'autres formats comme .jpg, .bmp, etc.
			Si l'on dispose d'une image, on peut utiliser la commande Image.open("nom\_de\_l\_image.png") pour l'importer et la manipuler avec python.
			
		\begin{enumerate}[resume]
			\item Ajouter l'instruction suivante en ligne 3 du programme :
				\begin{center}
					ma\_premiere\_image.putpixel((250,250),(0,0,0))
				\end{center}
				Exécuter alors le programme. Quel est le rôle de la ligne ajoutée (attention, il faut ouvrir l'œil !) ?\\
				.\dotfill
				
		\end{enumerate}
		
Pillow considère que dans une image \og le pixel origine\fg{}, de coordonnées $(0,0)$, est en haut à gauche. L'axe des abscisses est orienté vers la droite, l'axe des ordonnées est orienté vers le bas.

		\begin{enumerate}[resume]
			\item 
				\begin{enumerate}
					\item Positionner le repère sur l'image ci-dessous.
						\begin{center}
							\includegraphics[scale=0.4]{Inuancedegris.eps}
						\end{center}
				\end{enumerate}
		Dans l'image ci-dessus, on considère que chaque petit carré est un pixel.
						
				\begin{enumerate}[resume]
					\item Quelles sont les dimensions de l'image ? \dotfill
					\item Quelles sont les coordonnées du pixel le plus clair ? \dotfill
				\end{enumerate}
			\item On travaille à nouveau sur le fichier \og activite1.py \fg{}. Quelles instructions faut-il ajouter pour que le pixel en haut à gauche soit vert, celui en bas à gauche soit blanc, celui en bas à droite soit bleu et celui en haut à droite soit noir.\\
			.\dotfill \\
			.\dotfill \\
			.\dotfill \\
			.\dotfill \\
			
			\item De même que la fonction putpixel permet d'affecter une valeur à un pixel, il existe une fonction qui permet de récupérer la valeur du pixel d'une image à une position donnée. 
				\begin{enumerate}
					\item Quelle est la valeur renvoyée par la commande ma\_premiere\_image.getpixel((0,0)) (utiliser l'interpréteur (fenêtre du bas) de thonny) ?\\
					.\dotfill
					\item Que fait la suite d'instructions suivante ?
						\begin{center}
						\begin{tabular}{l}
					pixel=ma\_premiere\_image.getpixel((0,0))\\
					pixel[0]
						\end{tabular}
						\end{center}
					.\dotfill\\
					Et si l'on avait écrit pixel[1] ou pixel[2] ?\\
					.\dotfill\\
					.\dotfill
				\end{enumerate}
		\end{enumerate}
	

				
		 
	
	
\section*{Activité 2 :}
	Dans Thonny, ouvrir le programme \og activite2.py \fg{} et l'exécuter.
	\begin{enumerate}
		\item Que fait ce programme ?\\
		.\dotfill
		\item Quelles instructions faut-il ajouter pour compléter le contour de l'image en noir ?\\
		.\dotfill\\
		.\dotfill
		\item Quelles instructions faut-il ajouter pour tracer les diagonales du carré en bleu.\\
		.\dotfill\\
		.\dotfill
	\end{enumerate}
	

\newpage
\section*{Activité 3 :}
	Ouvrir le programme \og activite3.py \fg{} et l'exécuter.
	\begin{enumerate}
		\item Que fait ce programme ?\\
		.\dotfill
		\item Modifier le programme pour afficher le bord en noir.
		\item Tracer le drapeau de l'Allemagne.
		\item On considère le programme suivant.
			
			\begin{center}
				\includegraphics[scale=0.8]{programme_a_determiner}
\end{center}						
			
%			\begin{center}
%				\begin{tabular}{|l|}
%				\textbf{\color{purple}{from}} PIL \textbf{\color{purple}{import}} Image\\[3mm]
%				drapeau2=Image.new(\color{green}{'RGBA'},(300,200),(255,255,255))\\
%				\textbf{\color{purple}{for}} x \textbf{\color{purple}{in}} \textbf{\color{purple}{range}}(300):
%				\hspace{1cm} \textbf{\color{purple}{for}} y \textbf{\color{purple}{in}} \textbf{\color{purple}{range}}(200):\\
%				\hspace{2cm} \textbf{\color{purple}{if} 
%				
%				\end{tabular}
%			\end{center}

				\begin{enumerate}
					\item En python, que signifie le symbole \og ** \fg{} dans un calcul ? \\
					.\dotfill
					\item En python, que représente la fonction \og sqrt \fg{} ?\\
					.\dotfill
					\item  \textbf{Sans exécuter cet algorithme sur thonny}, déterminer le pays dont le drapeau est affiché par ce programme ?\\
					.\dotfill
				\end{enumerate}
				
		\item On considère l'algorithme en langage naturel suivant :
		
		\begin{center}
			\begin{tabular}{|l|}
				\hline
					Créer une image rouge de dimensions $320\times 320$ pixels et nommée drapeau3\\
					Pour $i$ allant de 60 à $259$\\
					\hspace{1cm}Pour $j$ allant de $130$ à $189$ \\
	\hspace{2cm}					Affecter la couleur blanc au pixel en position $(i,j)$ de l'image drapeau3\\
					\hspace{1cm}Fin Pour\\
					Fin Pour\\
					Pour $i$ allant de $130$ à $189$\\
					\hspace{1cm}Pour $j$ allant de $60$ à $259$ \\
	\hspace{2cm}			Affecter la couleur blanc au pixel en position $(i,j)$ de l'image drapeau3\\
					\hspace{1cm}Fin Pour\\
					Fin Pour\\
				\hline
			\end{tabular}
		\end{center}
		
		\begin{enumerate}
			\item De quel pays cet algorithme trace-t-il le drapeau ?\\
			.\dotfill
			\item Programmer cet algorithme en python sur le logiciel thonny et vérifier la réponse précédente.
		\end{enumerate}
\end{enumerate}	 
\end{document}

