Bonjour à tous,
J’ai fait une petite appli en C# dont le but est de découper une grande image en petites images, par exemple une image qui fait 1000x1000px elle se découpe en 10 images qui font chacunes 100x100.
Sympa, mais Photoshop le fait très bien çà me direz-vous. Bah oui sur les images de petites tailles. Moi je veux découper des grosses images (10 000px, 240Mo env.) et Photoshop ne supporte pas. Et le problème, puisqu’il y a problème, c’est que la petite appli que j’ai faite ne fonctionne pas non plus :P. je l’ai testée avec un fichier de 60Mo, découpé par dalle de 400px, çà marche nickel, ensuite je l’ai testée avec un le fameux fichier de 10 000px et de 240Mo et la paf, une erreur.
Donc je ne sais pas trop comment faire si ce n’est user des ‘stream’ (hein joe :P) Mais seulement voilà je ne suis pas hyper calé là dessus et je ne vois pas trop comment m’y prendre concrètement.
Je vous donne la méthode qui permet de cropper :
[code] private void cropImage(Image img, String savePath, int largeurD, int hauteurD)
{
string path = savePath;
int largeurImage = img.Width;
int hauteurImage = img.Height;
int largeurDalle = largeurD; // largeur de la petite image finale
int hauteurDalle = hauteurD; // hauteur de la petite image finale
Bitmap bmpImage = new Bitmap(img);
int countHauteur = 0;
for (int i=0; i<hauteurImage; i+=hauteurDalle)
{
int countLargeur = 0;
for (int j=0; j<largeurImage; j+=largeurDalle)
{
Rectangle recCrop = new Rectangle(countLargeur, countHauteur, largeurDalle, 400);
Bitmap bmpCrop = new Bitmap (largeurDalle, hauteurDalle, bmpImage.PixelFormat);
Graphics gphCrop = Graphics.FromImage(bmpCrop);
Rectangle recDest = new Rectangle(0, 0, largeurDalle, hauteurDalle);
gphCrop.DrawImage(bmpImage, recDest, recCrop.X, recCrop.Y, recCrop.Width, recCrop.Height, GraphicsUnit.Pixel);
bmpCrop.Dispose();
gphCrop.Dispose();
bmpCrop.Save(path+countHauteur.ToString()+"_" + countLargeur.ToString() + “.png”,ImageFormat.Png);
countLargeur += largeurDalle;
}
countHauteur += hauteurDalle;
}
bmpImage.Dispose();
}[/code]
Merci de votre aide !