cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
17 janv. 2007 à 13:40
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
19 janv. 2007 à 16:30
Bonjour,
Je cale sur une application qui charge des images au format Bmp en créant une liste avec un Tcombobox, avant de pouvoir appliquer un effet, seulement cela oblige de créer un dossier "Image" et de placer au moins 2 images ainsi que celles ou ont veux appliquer un effet.
J'aimerai pouvoir utiliser à la place un TopenPictureDialog avec le filtre "*.bmp" même si il faut l'utiliser en association avec le Tcombobox, ce qui éviterait une contrainte pour l'utilisateur.
Voici ce que j'utilise comme procédure :
procedure TMainForm.initBackgroundsNames();
var
searchRec: TSearchRec;
begin
backgroundsNames := TStringList.Create();
// Liste les images du répertoire Image\
if findFirst(rep+'Image\*', faAnyFile, searchRec) = 0 then
begin
repeat
if extractFileExt(searchRec.Name)='.bmp' then
backgroundsNames.Add(searchRec.Name);
until findNext(searchRec)<>0;
end;
// Ajout de la liste des fichiers bmp dans la comboBox
ComboBox1.Items.AddStrings(backgroundsNames);
end;
procedure TMainForm.initBackgroundBitmap(fileName: string);
begin
// Si le bitmap n'existe pas déjà (initialisation) on le crée
if not assigned(backgroundBitmap) then backgroundBitmap := TBitmap.Create();
try
// Chargement du bitmap depuis le fichier
backgroundBitmap.LoadFromFile(rep+'Image\'+fileName);
// Passage en mode RVB 24 bit pour le travail des pixels
backgroundBitmap.PixelFormat := pf24bit;
except
showMessage('Erreur: ce n''est pas une image adéquate');
end;
end;
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 19 janv. 2007 à 16:30
Bonjour,
@ Cirec, faux problème pour toi mais pour un débutant c'est autre chôse car à l'exécution de la forme, le mouvement d'onde est déjà en action, d'ailleurs si tu élimines les fichiers images de base, tu as une exception (code de neodelphi) donc je ne vois pas comment intercaler un TopenPictureDialog, tant pis.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 18 janv. 2007 à 11:35
Salut,
J'ai pas bien compris ce que tu demandes
mais en attendant que tu m'expliques un peut ce que tu désires réaliser, je peu quand même te dire que ta fonction de recherche
ne me parait pas correcte ... pas de FindClose
ensuite tu pouvais directement écrire ceci :
if findFirst(rep+'Image\*.BMP', faAnyFile, searchRec) = 0 then ...
Sinon pour afficher tous les Bitmaps dans un Combobox tu peux tout simplement faire ceci :
procedure TForm1.FormCreate(Sender: TObject);
Var aDir : String;
begin aDir : = Path.MYPICTURES + '*.BMP';
With ComboBox1 do Begin Text := EmptyStr;
SendMessage(Handle, CB_DIR, DDL_ARCHIVE, Integer(aDir));
End ;
End;
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 19 janv. 2007 à 14:29
"Seulement il y a une contrainte puisque les images doivent se trouver dans un répertoire défini (Image)."
c'est un faux problème ...
comme c'est toi qui fait l'application c'est à toi de la concevoir de la sorte qu'elle soit le plus flexible possible
Pour la modification de JPG il faut dans un premier temps convertir l'image en BMP pour pouvoir appliquer un effet et pour finir le re-convertir en JPG pour l'enregistrer.
D'une manière générale les effets et autres modifications ne sont applicables qu'aux bitmaps