Sauvegarde d'une image

cs_carpiste Messages postés 13 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 7 octobre 2012 - 27 déc. 2010 à 17:47
cs_carpiste Messages postés 13 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 7 octobre 2012 - 28 déc. 2010 à 16:00
Bonjour,

Petit problème, Je crée une image de taille 300x200 dans
Je dessine dedans, pas de problème) mais quand je sauvegarde mon image la taille change soit 600X600 mais je veux garder 300x200, avant mon saveToFile, je redonne les tailles mais rien ne change. comment faire?

Merci

A+

4 réponses

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
27 déc. 2010 à 23:00
Bonjour,

« Je crée une image de taille 300x200 »
C'est flou de chez afflelou !

C'est un TImage, un TBitmap ?
Mais si tu dessines dedans, tu dessines sur un TCanvas.
Bref, sans ton code, on ne pourra pas t'aider.



Soutenez Wikimédia France aujourd'hui : http://dons.wikimedia.fr
0
cs_carpiste Messages postés 13 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 7 octobre 2012
28 déc. 2010 à 11:18
Bonjour,

J'explique :
j'ai un composant Timage nom=Image6 , Haut=300, large=200, Transparent=true
Je dessine dedans des petits ronds ou autres formes (Mon image est superposée à
une autre Image contenant une carte.
Ne sachant sauvegarder en une seul image les deux (ce serait l'idéal) donc je sauvegarde
uniquement mon image Image6
Code :

procedure ....Image6MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Drawing:=true;
Image6.Canvas.MoveTo(X,Y);
Origin:=Point(X,Y);
MovePt := Origin;
Image6.Canvas.Pen.mode:=PmCopy;
if efface = 1 then
sender:=ClearBrush
else
sender:=cpmstyle;
Image6.Canvas.Brush.Color := couleur;
label10.color:=couleur;
with Image6.Canvas.Brush do
begin
if Sender = SolidBrush then Style := bsSolid
else if Sender = ClearBrush then
begin
Style := bsClear;
Image6.Canvas.Brush.Color := clwhite;
Image6.Canvas.Pen.Color:= clwhite;
label10.color:=clwhite;
end
else if Sender = HorizontalBrush then Style := bsHorizontal
else if Sender = VerticalBrush then Style := bsVertical
else if Sender = FDiagonalBrush then Style := bsFDiagonal
else if Sender = BDiagonalBrush then Style := bsBDiagonal
else if Sender = CrossBrush then Style := bsCross
else if Sender = DiagCrossBrush then Style := bsDiagCross;
end;

procedure ....SpeedButton13Click(Sender: TObject);
var
jp: TJpegImage;
begin
...............traitement autre

jp := TJpegImage.Create;
Image6.Height:=311;
Image6.Width:=226;
jp.assign(Image6.Picture.Bitmap);
jp.SaveToFile(Pmenu.repima+'/'+'Posi_'+trim(DBEdit1.text)+'.jpg');
end;


Mais la taille de l'image = 600x600 au lieu de 300x200

Merci

A+
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 déc. 2010 à 14:26
Quand tu écris :

Image6.Height:=311; 
Image6.Width:=226;


Tu ne fais que redimensionner le compo TImage et non pas le Bitmap qu'il contient !

Tu dois faire :

Image6.Picture.Bitmap.Height:=311; 
Image6.Picture.Bitmap.Width:=226;


D'autre part, fais attention de ne pas confondre tes Canvas. En effet, un TImage a deux Canvas :
Image6.Canvas;
Image6.Picture.Bitmap.Canvas


Si tu dessines sur Image6.Picture.Bitmap.Canvas, tu dessineras sur ton Bitmap et tu pourras tout sauvegarder.
Si tu desssines sur Image6.Canvas, ce dessin sera perdu lors de la sauvegarde du Bitmap.



_______________________________________
Soutenez Wikimédia France aujourd'hui : http://dons.wikimedia.fr
0
cs_carpiste Messages postés 13 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 7 octobre 2012
28 déc. 2010 à 16:00
Merci beaucoup à Caribensila, ça fonctionne
et la réponse a été super rapide

Bonnes fête à tous

A+
0
Rejoignez-nous