Enregistrement d'une image dans un fichier

De RAD Studio
Aller à : navigation, rechercher

Remonter à Chargement et enregistrement de fichiers graphiques

L'objet Picture peut charger et enregistrer des graphiques sous divers formats. Vous pouvez créer et recenser vos propres formats de fichiers graphiques afin que les objets image puissent également les enregistrer et les stocker.

Pour enregistrer le contenu d'un contrôle image dans un fichier, appelez la méthode SaveToFile de l'objet Picture du contrôle image.

La méthode SaveToFile nécessite de spécifier le nom du fichier de sauvegarde. Si l'image est nouvellement créée, il peut ne pas avoir de nom de fichier, ou l'utilisateur peut vouloir enregistrer une image existante dans un fichier différent. Dans l'un ou l'autre cas, l'application doit demander à l'utilisateur un nom de fichier avant l'enregistrement, comme le montre la rubrique suivante.

Les deux gestionnaires d'événements suivants, attachés respectivement aux éléments de menu Fichier > Enregistrer et Fichier > Enregistrer sous, gèrent l'enregistrement des fichiers ayant déjà un nom, l'enregistrement des fichiers n'ayant pas de nom et l'enregistrement des fichiers sous un nouveau nom.

procedure TForm1.Save1Click(Sender: TObject);
begin
  if CurrentFile <> '' then
    Image.Picture.SaveToFile(CurrentFile) { save if already named }
  else
    SaveAs1Click(Sender); { otherwise get a name }
end;

procedure TForm1.SaveAs1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then { get a file name }
  begin
    CurrentFile := SaveDialog1.FileName; { save the user-specified name }
    Save1Click(Sender); { then save normally }
  end;
end;
void __fastcall TForm1::Save1Click(TObject *Sender) {
	if (!CurrentFile.IsEmpty())
		Image->Picture->SaveToFile(CurrentFile); // save if already named
	else
		SaveAs1Click(Sender); // otherwise get a name
}

void __fastcall TForm1::SaveAs1Click(TObject *Sender) {
	if (SaveDialog1->Execute()) // get a file name
	{
		CurrentFile = SaveDialog1->FileName; // save user-specified name
		Save1Click(Sender); // then save normally
	}
}

Voir aussi