Appliquer un cadre de couleur ou avec un bitmap

Résolu
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 - 24 nov. 2007 à 10:17
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 - 24 nov. 2007 à 18:29
Bonjour à toutes et à tous,

Voici mon problème du jour, après avoir redimensionné une image et avant de la sauver en jpeg, est t'il possible de lui appliquer un cadre de couleurs ou un cadre avec une image (gif) afin d'appliquer ce cadre sur mon image finale, si oui, quelqu'un peut t'il m'aider.

Je n'ai rien trouvé à ce sujet sur la toile ou je n'ai pas bien cherché !

Merci de votre attention.

@+,

Cincap

[mailto: mailto:]

9 réponses

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 nov. 2007 à 16:03
Imaginons que ton cadre soit dans Image2...

Procedure Encadrer(BmpSource:TBitmap;CadreWidth:Integer;Cadre:TBitmap);
   var
      BmpDest : TBitmap;
  begin
    BmpDest := TBitmap.Create;
  try
    BmpDest.Width  := BmpSource.Width + CadreWidth + CadreWidth;
    BmpDest.Height := BmpSource.Height + CadreWidth + CadreWidth;
    BmpDest.Canvas.Brush.Bitmap := Cadre;
    BmpDest.Canvas.FillRect(BmpDest.Canvas.ClipRect);
    BmpDest.Canvas.Draw(CadreWidth,CadreWidth,BmpSource);
    BmpSource.Assign(BmpDest);
  finally
    BmpDest.Canvas.Brush.Bitmap := nil;
    BmpDest.Free;
  end;
end;

{Utilisation:}
procedure TForm1.Button1Click(Sender: TObject);
  begin
  Encadrer(Image1.Picture.Bitmap,4,Image2.Picture.Bitmap);
end;
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 nov. 2007 à 14:51
Salut cincap,

Procedure Encadrer(BmpSource:TBitmap;CadreWidth:Integer;CadreColor:Tcolor);
   var
      BmpDest : TBitmap;
  begin
  BmpDest := TBitmap.Create;
  try
    BmpDest.Width  := BmpSource.Width  + CadreWidth + CadreWidth;
    BmpDest.Height := BmpSource.Height + CadreWidth + CadreWidth;
    BmpDest.Canvas.Brush.Color := CadreColor;
    BmpDest.Canvas.FillRect(BmpDest.Canvas.ClipRect);
    BmpDest.Canvas.Draw(CadreWidth,CadreWidth,BmpSource);
    BmpSource.Assign(BmpDest);
  finally BmpDest.Free; end;
end;





{Utilisation:}





procedure TForm1.Button1Click(Sender: TObject);
  begin
  Encadrer(Image1.Picture.Bitmap,4,clred);
end;
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
24 nov. 2007 à 15:32
Bonjour,

@ Caribensila, merci de ta réponse, après l'essai, l'image est recouverte de rouge et l'application se bloque, j'ai du fermer ma session.

Pas évident, et je suppose qu'avec un cadre image ce sera en core plus difficile.

@+,

Cincap

[mailto: mailto:]
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
24 nov. 2007 à 15:46
@ Caribensila, désolé cela fonctionne j'avais chargé un Jpg donc forcément un blocage.

Le cadre n'est pas adoucit mais ce code peut être nettement amélioré par la suite, c'est déjà une bonne approche.

As tu aussi une idée pour charger un bmp ou gif servant de cadre et l'appliquer à image1.

@+,

Cincap

[mailto: mailto:]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 nov. 2007 à 16:12
...Enfin, ça dépend de l'effet recherché...
Tu devras peut-être utiliser StretchDraw().
A tester selon le bitmap-cadre utilisé.
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
24 nov. 2007 à 16:23
@ Caribensila, en fait, j'ai pas mal de mask de cadres divers en gif et j'aurai bien voulu avec la photo chargée, y appliquer un de ces cadres.

Avec ta solution, le cadre n'est pas mélangé avec la photo, il se trouve même derrière ce qui n'est pas ce que je cherche mais par contre cela crée un autre effet du moment que l'on répète le code de l'utilisation on a alors l'impression de donner un relief à l'image1.

@+,

Cincap

[mailto: mailto:]
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 nov. 2007 à 17:00
« Avec ta solution, le cadre n'est pas mélangé avec la photo »

Je ne comprends pas bien ce que tu veux dire...
C'est quand même pas un sous-verre que tu veux faire?
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
24 nov. 2007 à 17:12
Mais non, si tu connais Photofiltre, il permet de placer un cadre ou bordure si tu préfère avec une série de mask en gif.

A mon avis il utilise le format gif pour la transparence en utilisant la propriété transparentcolor.

Sinon merci déjà pour tes solutions.

@+,

Cincap

[mailto: mailto:]
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
24 nov. 2007 à 18:29
Ok merci, je vais cloturer le topic.


@+,


Cincap

[mailto: mailto:]
0
Rejoignez-nous