cs_valkyrie
Messages postés60Date d'inscriptionmardi 27 juillet 2004StatutMembreDernière intervention13 décembre 2004
-
27 juil. 2004 à 10:49
cs_valkyrie
Messages postés60Date d'inscriptionmardi 27 juillet 2004StatutMembreDernière intervention13 décembre 2004
-
29 juil. 2004 à 10:35
bonjour a tous et a toutes
je suis debutant
je dois realiser une fonction graphique noir et blanc permettant de faire varier les niveaux de noir et de blanc selon un seuil modifiable a l aide d un curseur....
en gros on bouge le curseur ca fait changer la valeur seuil et il y a plus ou moins de blanc et de noir(si le blanc diminue le noir augmente et inversement)c est pour montrer le contraste des niveaux de blanc et noir...a la base l image est en couleur...la meme fonction existe sous photoshop
je sais pas si c est clair...
si vous pouvez me mettre sur la voie je vois que vous avez tous l air fort...de toute facon plus que moi c est sur!!
cs_valkyrie
Messages postés60Date d'inscriptionmardi 27 juillet 2004StatutMembreDernière intervention13 décembre 2004 29 juil. 2004 à 10:35
Je suis impressionne!!
pour un debutant j en prends plein la tete mais c est tres bien!
merci beaucoup yve!!
des que j ai decortique les commandes du logiciel japonais je te tiens au courant. :)
aimez vous les uns les autres
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008 28 juil. 2004 à 10:09
bonjour,
Image Bitmap de 1.
Raster Operation:
Déterminer comment les pixels de la source et de la destination selectionner seront combiner.
comme exemple: créer un nouveau projet
dans l'unit1
copier ce code...,
double cliquer dans l'inspecteur d'objet l'événement OnCreate pour l'associé à la procédure
idem pour OnClose
et exécuter.
unit unit1;
interface
uses Windows,Classes,Graphics,Forms,ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
end;
var
Form1: TForm1;
DesktopBitmap:TBitmap;
Image1:TImage;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
DesktopBitmap := TBitmap.Create;
with DesktopBitmap do begin
Width := Screen.Width;
Height := Screen.Height;
end;
//1 action acquérir une image
BitBlt(DesktopBitmap.Canvas.Handle,
0,0,Screen.Width,Screen.Height,
GetDC(GetDesktopWindow),0,0,SrcCopy);
//2 action appliquer un filtre
BitBlt(DesktopBitmap.Canvas.Handle,
0,0,Screen.Width,Screen.Height,
GetDC(GetDesktopWindow),0,0,$153406C4);
//modifier le rop code $053406C4
//C'est assez rigolo
Image1:=TImage.Create(self);
Image1.Parent:=Form1;
Image1.Width:=Width;
Image1.Height:=Height;
Image1.Picture.Bitmap := DesktopBitmap;
DesktopBitmap.Free;
end;
//rechercher Tertiary Raster Operation Codes
//pour plus d'information...
//appliquer le nombre de filtre voulu...
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Image1.Free;
end;
end.
{sur que c'est pas exactement ce que tu demandes mais y'a pas de doutes que tu pars sur une bonne base :-p }
yve
cs_valkyrie
Messages postés60Date d'inscriptionmardi 27 juillet 2004StatutMembreDernière intervention13 décembre 2004 28 juil. 2004 à 11:02
merci beaucoup pour ces precieux renseignements Yve
j essaye et je te tiens au courant
(je suis a tokyo donc le logiciel est en japonais :p)
aimez vous les uns les autres
Vous n’avez pas trouvé la réponse que vous recherchez ?
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008 28 juil. 2004 à 11:31
ouais ,j'ai eu le temps de tester et puis c'est pas tout à fait au poil !!!
ça donne toujours le même résultat , entre ce qu'on lis et les résultats y'a une marge mais bon ,je vais tenter d'améliorer tout ça ...c'est peut-être plus compliqué que je ne l'avais imaginé ?
pixel par pixel GetBitMapBits renvoi les pixel dans un tableau
peut-être les décrémenter et les réaffecter au bitmap ?
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TrackBar1.Free;
Image1.Free;
end;
procedure TForm1.modifie(h:hdc;WLargeur,Hauteur:Integer;filtreET,filtreXor:DWord);
var
TempDC:HDC;
TempBMP:HBitmap;
BufferDst:Pointer;
FieldinWords:Longint;
FieldinBytes:Longint;
x:Longint;
begin