mvc open pdf in new tab : Extract image from pdf in Library software component .net windows html mvc c22-part886

303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 221 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Une fenêtre GTK+ (merci à KaZu pour le screenshot 
)
Vos fenêtres auront donc une apparence différente des fenêtres habituelles de votre OS (enfin sauf pour ceux qui sont sous
Gnome sous Linux 
). Pour que vos applications faites en GTK+ fonctionnent sur l'ordinateur de vos utilisateurs, il faudra qu'ils
installent au préalable un programme appelé le runtime GTK+ (ce qui n'est pas très pratique à mon goût). 
Ceci mis à part, c'est une bonne librairie graphique de création de fenêtres. Si cela vous tente, vous trouverez un bon tutorial sur
http://www.gtk-fr.org pour démarrer 
API Win32 : c'est la librairie de création de fenêtres de Windows. Le défaut est que votre programme ne fonctionnera que sous
Windows, l'avantage est que... ben en utilisant cette librairie vous pouvez créer de véritables programmes Windows en fenêtres
comme ceux que vous avez l'habitude d'utiliser tous les jours (si vous êtes sous Windows). En outre, vous n'aurez aucune DLL à
livrer (ou aucun runtime à installer comme c'est le cas pour GTK+) : logique, car ceux-ci sont automatiquement installés avec
Windows. 
Vous trouverez un bon tutorial à cette adresse : http://bob.developpez.com/tutapiwin/ 
L'API Win32 est écrite en C, mais il faut savoir aussi qu'il existe une librairie appelée la MFC (Microsoft Foundation
Classes, donc aussi créée par Microsoft) qui vous permet de programmer en C++. 
Tout dépend du langage que vous souhaitez utiliser. A votre niveau de toute façon c'est sur l'API Win32 qu'il faut vous
pencher vu que vous ne connaissez pas le C++. La MFC 
n'est pas plus puissante que l'API Win32 (je vous avais déjà dit
que c'est pas parce que c'est du C++ que c'est mieux 
), elle permet juste de créer votre programme d'une manière
différente.
Voilà, ce n'est qu'une petite liste (vraiment très petite). Ce sont des suggestions de librairies que vous pouvez apprendre si vous le
désirez. 
Extract image from pdf in - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract text from pdf image; extract photos pdf
Extract image from pdf in - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract images from pdf files; extract images from pdf file
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 222 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Encore une fois j'insiste : je vous recommande dans un premier temps d'étudier la SDL avec moi, pour vous faire les crocs. Une fois que
vous serez bien affamés et que vous aurez dévoré la SDL toute crue, vous serez plus aptes à vous lancer tous seuls dans l'étude d'une de
ces librairies 
Création d'une fenêtre et de surfaces
Dans le premier chapitre de la partie III, nous avons fait un petit tour d'horizon de la SDL pour voir les possibilités que cette librairie
nous offre. Vous l'avez normalement téléchargée et vous êtes capables de créer un nouveau projet SDL valide sans aucun problème 
Oui mais voilà la tronche de votre programme pour le moment 
Ce n'est qu'un main quasiment vide (bon allez je vous l'accorde, il fait un return quand même !). Le programme n'affiche rien, ne fait
rien, s'arrête de suite. Toutefois, cela est signe que votre projet SDL est correctement configuré et que vous êtes donc parés à écrire du
code SDL. 
Bon, qu'est-ce qu'on attend pour commencer ? 
Charger et arrêter la SDL
Un grand nombre de librairies écrites en C nécessitent d'être initialisées et fermées par des appels à des fonctions. La SDL n'échappe
pas à la règle. 
En effet, la librairie doit charger un certain nombre d'informations dans la mémoire pour pouvoir fonctionner correctement. Ces
informations sont chargées en mémoire dynamiquement par des malloc (ils sont très utiles ici !). Or, comme vous le savez, qui dit malloc
dit... free ! 
Vous devez libérer la mémoire que vous avez allouée manuellement et dont vous n'avez plus besoin. Si vous ne le faites pas, votre
programme va prendre plus de place en mémoire que nécessaire, et dans certains cas ça peut être complètement catastrophique
(imaginez que vous fassiez une boucle infinie de malloc sans le faire exprès, en quelques secondes vous saturerez toute votre mémoire
!). 
Voici donc les 2 premières fonctions de la SDL à connaître : 
SDL_Init : charge la SDL en mémoire (des malloc y sont faits).
SDL_Quit : libère la SDL de la mémoire (des free y sont faits).
La toute première chose que vous devrez faire dans votre programme sera donc un appel à SDL_Init, et la dernière sera un appel à
SDL_Quit. 
SDL_Init : chargement de la SDL
La fonction SDL_Init prend un paramètre. Vous devez indiquer quelles parties de la SDL vous chargez. 
Ah bon, la SDL est composée de plusieurs parties ?
Eh oui 
Il y a une partie de la SDL qui gère l'affichage à l'écran, une autre qui gère le son etc etc... 
La SDL met à votre disposition plusieurs constantes pour que vous puissiez indiquer quelle partie vous avez besoin d'utiliser dans votre
programme : 
Constante
Description
SDL_INIT_VIDEO
Charge le système d'affichage (vidéo). 
C'est la partie que nous chargerons le plus souvent.
SDL_INIT_AUDIO
Charge le système de son. 
Vous permettra donc par exemple de jouer de la musique.
SDL_INIT_CDROM
Charge le système de CD-Rom. 
Vous permettra de manipuler votre lecteur de CD-Rom
SDL_INIT_JOYSTICK
Charge le système de gestion du joystick.
VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
extract photos from pdf; how to extract images from pdf files
C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
extract images from pdf files without using copy and paste; extract image from pdf java
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 223 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
SDL_INIT_TIMER
Charge le système de timer. 
Cela vous permet de gérer le temps dans votre programme (très pratique).
SDL_INIT_EVERYTHING Charge tous les systèmes listés ci-dessus à la fois.
Si vous appelez la fonction comme ceci : 
Code : C
SDL_Init(SDL_INIT_VIDEO);
... alors le système vidéo sera chargé et vous pourrez ouvrir une fenêtre, dessiner dedans etc. 
En fait, tout ce que vous faites c'est envoyer un nombre à SDL_Init à l'aide d'une constante. Vous ne savez pas de quel nombre il s'agit,
et justement c'est ça qui est bien. Vous avez juste besoin d'écrire la constante, c'est plus facile à lire et à retenir 
La fonction SDL_Init regardera le nombre qu'elle reçoit, et en fonction de cela elle saura quels systèmes elle doit charger. 
Maintenant si vous faites : 
Code : C
SDL_Init(SDL_INIT_EVERYTHING);
... vous chargez tous les sytèmes de la SDL. Ne faites cela que si vous avez vraiment besoin de tout, il est inutile de surcharger votre
ordinateur en chargeant des choses dont vous ne vous servirez pas. 
Supposons que je veuille charger l'audio et la vidéo seulement. Dois-je utiliser SDL_INIT_EVERYTHING ?
Vous n'allez pas utiliser SDL_INIT_EVERYTHING juste parce que vous avez besoin de 2 systèmes, pauvres fous 
On peut combiner les options à l'aide du symbole | (la barre verticale). 
Code : C
// Chargement de la vidéo et de l'audio
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
Vous pouvez aussi en combiner 3 sans problèmes : 
Code : C
// Chargement de la vidéo, de l'audio et du timer
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER);
Ces "options" que l'on envoie à SDL_Init sont aussi appelées flags. C'est quelque chose que vous rencontrerez assez
souvent. 
Retenez bien qu'on utilise la barre verticale "|" pour combiner les options. Ca agit un peu comme un opérateur d'addition
(d'ailleurs le + peut généralement être utilisé à la place, mais il est préférable d'utiliser le symbole | qui marche dans tous les
cas).
SDL_Quit : arrêt de la SDL
La fonction SDL_Quit est super simple à utiliser vu qu'elle ne prend pas de paramètre : 
Code : C
SDL_Quit();
C# PDF insert image Library: insert images into PDF in C#.net, ASP
C#.NET PDF SDK - Add Image to PDF Page in C#.NET. How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Add Image to PDF Page Using C#.NET.
extract image from pdf c#; extract jpg from pdf
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Insert Image to PDF Page Using VB. Add necessary references: RasterEdge.Imaging.Basic.dll.
extract pdf images; pdf image text extractor
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 224 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Tous les systèmes initialisés seront arrêtés et libérés de la mémoire. 
Bref, c'est un moyen de quitter la SDL proprement. A faire à la fin de votre programme. 
En résumé...
En résumé, voici à quoi va ressembler votre programme : 
Code : C
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO)// Démarrage de la SDL (ici : chargement du système vidéo)
/*
La SDL est chargée.
Vous pouvez mettre ici le contenu de votre programme
*/
SDL_Quit()// Arrêt de la SDL (libération de la mémoire).
return 0;
}
Bien entendu, aucun programme "sérieux" ne tiendra dans le main. Ce que je fais là est schématique. Dans la réalité, votre main
contiendra certainement plein d'appels à des fonctions qui feront elles aussi plein d'appels à d'autres fonctions. 
Ce qui compte au final, c'est que la SDL soit chargée au début et qu'elle soit fermée à la fin quand vous n'en avez plus besoin. 
Gérer les erreurs
La fonction SDL_Init renvoie une valeur : 
-1 en cas d'erreur
0 si tout s'est bien passé
Vous n'y êtes pas obligés, mais vous pouvez vérifier la valeur retournée par SDL_Init. Ca peut être un bon moyen de traiter les erreurs de
votre programme et donc de vous aider à résoudre vos erreurs. 
Mais comment afficher l'erreur qui s'est produite ?
Excellente question ! On n'a plus de console maintenant, donc comment faire pour stocker / afficher des messages d'erreurs ? 
2 possibilités : 
Soit on modifie les options du projet pour qu'il réaffiche la console. On pourra alors faire des printf
Soit on écrit dans un fichier les erreurs. On utilisera fprintf.
J'ai choisi d'écrire dans un fichier. Cependant, écrire dans un fichier implique de faire un fopen, un fclose... bref c'est un peu moins
facile qu'un printf 
Heureusement, il y a une solution plus simple : utiliser la sortie d'erreur standard. 
Il y a une variable stderr qui est définie par stdio.h. 
Cette variable est automatiquement créée au début du programme et fermée à la
fin. Vous n'avez donc pas besoin de faire de fopen ou de fclose. 
Du coup, vous pouvez faire un fprintf sur stderr sans utiliser fopen ou fclose : 
Code : C
#include <stdlib.h>
#include <stdio.h>
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. C#.NET Example: Convert One Image to PDF in Visual C# .NET Class.
extract images pdf; extract image from pdf in
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Page: Extract, Copy and Paste PDF Pages. Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program.
extract vector image from pdf; extract pictures from pdf
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 225 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
#include <SDL/SDL.h>
int main(int argc, char *argv[])
{
if (SDL_Init(SDL_INIT_VIDEO) == -1) // Démarrage de la SDL. Si erreur alors...
{
fprintf(stderr, "Erreur d'initialisation de la SDL : %s\n", SDL_GetError())//
Ecriture de l'erreur
exit(EXIT_FAILURE)// On quitte le programme
}
SDL_Quit();
return EXIT_SUCCESS;
}
Quoi de neuf dans ce code ? 2 choses : 
On écrit dans stderr notre erreur. Le %s permet de laisser la SDL indiquer les détails de l'erreur : la fonction SDL_GetError()
renvoie en effet la dernière erreur de la SDL. 
Sous Windows, si vous avez écrit quelque chose dans stderr, alors un fichier stderr.txt sera créé dans le même dossier que
votre exécutable. Vous pourrez donc l'ouvrir pour lire l'erreur. 
Si vous êtes sous un autre OS, cela dépend de l'endroit où sont stockées les erreurs habituellement. 
On quitte en utilisant exit() (bon ça rien de nouveau). Toutefois, vous aurez remarqué que j'utilise une constante (EXIT_FAILURE)
pour indiquer la valeur que renvoie le programme. De plus, à la fin j'utilise EXIT_SUCCESS au lieu de 0. 
Qu'est-ce que j'ai changé ? En fait j'améliore petit à petit nos codes sources pour les rendre plus "pros". En effet, le nombre qui
signifie "erreur" par exemple peut être différent selon les ordinateurs ! Cela dépend là encore de l'OS. 
Pour pallier ce problème, stdlib.h nous fournit 2 constantes (des defines) : 
EXIT_FAILURE : valeur à renvoyer en cas d'échec du programme
EXIT_SUCCESS : valeur à renvoyer en cas de réussite du programme.
En utilisant ces constantes au lieu de nombres, vous êtes sûrs de renvoyer une valeur correcte quel que soit l'OS. 
Pourquoi ? Parce que le fichier stdlib.h change selon l'OS sur lequel vous êtes, donc les valeurs des constantes sont adaptées.
Votre code source, lui, n'a pas besoin de changer ! C'est ce qui rend le langage C compatible avec tous les OS pour peu que vous
programmiez correctement 
Cela n'a pas de grandes conséquences pour nous pour le moment, mais c'est plus "sérieux" d'utiliser ces constantes.
C'est donc ce que nous ferons à partir de maintenant 
Ouverture d'une fenêtre
Bon, la SDL est initialisée et fermée correctement maintenant 
La prochaine étape, si vous le voulez bien (et je suis sûr que vous le voulez bien 
), c'est l'ouverture d'une fenêtre ! 
Pour commencer déjà, assurez-vous d'avoir un main qui ressemble à ceci : 
Code : C
int main(int argc, char *argv[])
{
if (SDL_Init(SDL_INIT_VIDEO) == -1)
{
fprintf(stderr, "Erreur d'initialisation de la SDL");
exit(EXIT_FAILURE);
}
SDL_Quit();
return EXIT_SUCCESS;
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
example that you can use it to extract all images from PDF document. ' Get page 3 from the document. Dim page As PDFPage = doc.GetPage(3) ' Select image by the
extract color image from pdf in c#; online pdf image extractor
VB.NET PDF Form Data Read library: extract form data from PDF in
PDF software, it should have functions for processing text, image as well tell you how to read or retrieve field data from PDF and how to extract and get
extract images from pdf; how to extract a picture from a pdf
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 226 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
}
(cela devrait être le cas si vous avez bien suivi le début du chapitre) 
Pour le moment donc, on initialise juste la vidéo (SDL_INIT_VIDEO), c'est tout ce qui nous intéresse. 
Choix du mode vidéo
La première chose à faire après SDL_Init() c'est indiquer le mode vidéo que vous voulez utiliser, c'est-à-dire la résolution, le nombre de
couleurs et quelques autres options. 
On va utiliser pour cela la fonction SDL_SetVideoMode() qui prend 4 paramètres : 
La largeur de la fenêtre désirée (en pixels)
La hauteur de la fenêtre désirée (en pixels)
Le nombre de couleurs affichables (en bits / pixel)
Des options (des flags)
Pour la largeur et la hauteur de la fenêtre, je crois que je ne vais pas vous faire l'affront de vous expliquer ce que c'est 
Par contre, les 2 paramètres suivants sont plus intéressants. 
Le nombre de couleurs : c'est le nombre maximal de couleurs affichables dans votre fenêtre. Si vous jouez aux jeux vidéo, vous
devriez avoir l'habitude de cela. Une valeur de 32 bits/pixel permet d'afficher des milliards de couleurs (c'est le maximum). C'est
cette valeur que nous utiliserons le plus souvent car désormais tous les ordinateurs gèrent les couleurs en 32 bits. 
Sachez aussi que vous pouvez mettre des valeurs plus faibles comme 16 bits/pixel (65536 couleurs), ou 8 bits/pixel
(256 couleurs). Cela peut être utile surtout si vous faites un programme pour un petit appareil genre PDA ou téléphone
portable.
Les options : comme pour SDL_Init on doit utiliser des flags pour définir des options. Voici les principaux flags que vous pouvez
utiliser (et combiner avec le symbole "|") : 
SDL_HWSURFACE : les données seront chargées dans la mémoire vidéo, c'est-à-dire dans la mémoire de votre carte 3D.
Avantage : cette mémoire est plus rapide. Défaut : il y a en général moins d'espace dans cette mémoire que dans l'autre
(SDL_SWSURFACE).
SDL_SWSURFACE : les données seront chargées dans la mémoire système (c'est-à-dire la RAM à priori). Avantage : il y a
plein de place dans cette mémoire. Défaut : c'est moins rapide et moins optimisé.
SDL_RESIZABLE : la fenêtre sera redimensionnable. Par défaut elle ne l'est pas.
SDL_NOFRAME : la fenêtre n'aura pas de barre de titre ni de bordure.
SDL_FULLSCREEN : mode plein écran. Dans ce mode, aucune fenêtre n'est ouverte. Votre programme prendra toute la
place à l'écran, en changeant automatiquement la résolution de votre écran au besoin.
SDL_DOUBLEBUF : mode double buffering. C'est une technique très utilisée dans les jeux 2D qui permet de faire en sorte
que les déplacements des objets à l'écran soient fluides (sinon ça scintille et c'est moche). Je vous expliquerai les détails
de cette technique très intéressante plus loin.
Donc, si je fais : 
Code : C
SDL_SetVideoMode(64048032, SDL_HWSURFACE);
Cela ouvre une fenêtre de taille 640*480 en 32 bits/pixel (milliards de couleurs) qui sera chargée en mémoire vidéo (c'est la plus rapide,
on préfèrera utiliser celle-là). 
Autre exemple, si je fais : 
Code : C
SDL_SetVideoMode(40030032, SDL_HWSURFACE | SDL_RESIZABLE | SDL_DOUBLEBUF);
Cela ouvre une fenêtre redimensionnable de taille initiale 400x300 (32 bits/pixel) en mémoire vidéo, avec le double buffering activé. 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 227 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Voici un premier code source très simple (j'ai volontairement enlevé la gestion d'erreur) que vous pouvez essayer : 
Code : C
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(64048032, SDL_HWSURFACE);
SDL_Quit();
return EXIT_SUCCESS;
}
Testez. 
Que se passe-t-il ? La fenêtre apparaît et disparaît à la vitesse de la lumière. En effet, la fonction SDL_SetVideoMode est immédiatement
suivie de SDL_Quit, donc tout s'arrête immédiatement. 
Mettre en pause le programme
Comment faire pour faire en sorte que la fenêtre se maintienne ?
Il faut faire comme le font tous les programmes, que ce soit des jeux vidéo ou autre : une boucle infinie. En effet, en faisant une bête
boucle infinie on empêche notre programme de s'arrêter. Le problème est que cette solution est trop efficace car du coup il n'y a pas de
moyen d'arrêter le programme (à part un CTRL+ALT+SUPPR à la rigueur mais c'est bourrin 
). 
Voici un code 
à ne pas tester, je vous le donne juste à titre explicatif : 
Code : C
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(64048032, SDL_HWSURFACE);
while(1);
SDL_Quit();
return EXIT_SUCCESS;
}
Vous reconnaissez le while(1); : c'est la boucle infinie. Comme 1 signifie vrai (rappelez-vous les booléens), la boucle est toujours vraie
et tourne en rond indéfiniment sans qu'il y ait moyen de l'arrêter. Ce n'est donc pas une très bonne solution 
Pour mettre en pause notre programme afin de pouvoir admirer notre beeelle fenêtre sans faire de boucle interminable, on va utiliser
une petite fonction à moi : 
Code : C
void pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 228 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
}
}
Je ne vous explique pas le détail de cette fonction pour le moment. C'est volontaire, car cela fait appel à la gestion des évènements. Je
vous l'expliquerai dans les prochains chapitres. Si je vous explique tout à la fois maintenant vous risquez de tout mélanger 
Faites donc pour l'instant confiance à ma fonction de pause, nous ne tarderons pas à l'expliquer. 
Voici un code source complet et correct que vous pouvez (enfin !) tester : 
Code : C
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
void pause();
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO)// Initialisation de la SDL
SDL_SetVideoMode(64048032, SDL_HWSURFACE)// Ouverture de la fenêtre
pause()// Mise en pause du programme
SDL_Quit()// Arrêt de la SDL
return EXIT_SUCCESS; // Fermeture du programme
}
void pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
Vous remarquerez que j'ai mis le prototype de ma fonction pause() en haut. 
Je fais appel à la fonction pause() qui fait une boucle infinie un peu plus intelligente que tout à l'heure. Cette boucle s'arrêtera en effet
si vous cliquez sur la croix pour fermer la fenêtre 
Voici à quoi devrait ressembler la fenêtre que vous avez sous les yeux (ici une fenêtre 640x480) : 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 229 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Pfiou ! Nous y sommes enfin arrivés ! 
Si vous voulez vous pouvez mettre le flag "redimensionnable" pour autoriser le redimensionnement de votre fenêtre. Toutefois, dans la
plupart des jeux on préfère avoir une fenêtre de taille fixe (c'est plus simple à gérer !), donc nous garderons notre fenêtre fixe pour le
moment 
Attention au mode plein écran (SDL_FULLSCREEN) et au mode sans bordure (SDL_NOFRAME). Comme il n'y a pas de barre
de titre dans ces 2 modes, vous ne pourrez pas fermer le programme et vous serez alors obligés d'utiliser la commande
CTRL+ALT+SUPPR. 
Attendez d'apprendre à manipuler les évènements SDL (dans quelques chapitres) et vous pourrez alors coder un moyen de sortir
de votre programme avec une technique un peu moins hardcore que le CTRL+ALT+SUPPR 
Changer le titre de la fenêtre
Pour le moment, notre fenêtre a un titre par défaut (SDL_app sur ma capture d'écran). 
Que diriez-vous de changer cela ? 
C'est extrêmement simple, il suffit d'utiliser la fonction SDL_WM_SetCaption. 
Cette fonction prend 2 paramètres. Le premier est le titre que vous voulez donner à la fenêtre, le second est le titre que vous voulez
donner à l'icône. 
Contrairement à ce qu'on pourrait croire, donner un titre à l'icône ne correspond pas à charger une icône qui s'afficherait dans la barre
de titre en haut à gauche. En fait, le titre de l'icône ne s'affiche nulle part et je n'en ai jamais vu l'utilité. Par conséquent j'envoie la
valeur NULL à la fonction pour ne rien mettre. 
Sachez qu'il est possible de changer l'icône de la fenêtre, mais nous verrons comment le faire dans le chapitre suivant seulement. 
Voici donc le même main que tout à l'heure avec la fonction SDL_WM_SetCaption en plus : 
Code : C
int main(int argc, char *argv[])
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 230 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
{
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(64048032, SDL_HWSURFACE);
SDL_WM_SetCaption("Ma super fenêtre SDL !", NULL);
pause();
SDL_Quit();
return EXIT_SUCCESS;
}
Vous aurez remarqué que j'ai mis NULL pour second paramètre pas très utile (nom de l'icône). 
En C, vous êtes obligés d'indiquer tous les paramètres même si certains ne vous intéressent pas, quitte à envoyer NULL
comme je l'ai fait ici. 
Plus tard, si vous utilisez une librairie codée en C++, celle-ci pourra rendre certains paramètres de fonction facultatifs. C'est
un petit + du C++ 
La fenêtre a maintenant un titre 
Manipulation des surfaces
Pour le moment nous avons une fenêtre avec un fond noir. C'est la fenêtre de base. 
Ce qu'on veut faire, c'est la remplir, c'est-à-dire "dessiner" dedans. 
La SDL, je vous l'ai dit dans le chapitre précédent, est une librairie bas niveau. Cela veut dire qu'elle ne nous propose que des fonctions
Documents you may be interested
Documents you may be interested