scanline kullanımını

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

scanline kullanımını

Mesaj gönderen tuanna »

scanline kullanarak image nesnesinde 1 satırdaki renk kodunu almak isityorum nasıl yaparım...bunu.....
Siz hayal edin...Biz yapalım TuannaSoft...
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Merhaba.

Kod: Tümünü seç

       RGB[ X ]^.R := not RGB[ X ]^.R; 
       RGB[ X ]^.G := not RGB[ X ]^.G; 
       RGB[ X ]^.B := not RGB[ X ]^.B; 
gibi bir kodla alınır sanırım.
Kolay gelsin.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

mege kardeşim sağ ol ama söle bir yazdım....ben bunlar ekrandaki satır kodlarını almak istedim....text yazıyorum ama beyaz bir sayfa için bana verdiği sonuc....

000
000
000
255255255
255255255

gibi ama normalde bütünpixellerde beyaz var....yani kısacası su ....

scanline

birinci satırda veya birinci pikseldeki bana renk kodunu ne ve nasıl olarak veriyor...

////////////////////////
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, EnTifGr;

type
TForm1 = class(TForm)
Image1: TImage;
text: TMemo;
Button1: TButton;
Button2: TButton;
Splitter1: TSplitter;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
b1: TBitmap;
c1: PByteArray;
x, y: Integer;
s:string;
t:Char;
k:COLOR16;
begin
try
b1 := Image1.Picture.Bitmap;
b1.PixelFormat:=pf1bit ;
for y := 0 to b1.Height - 1 do
begin
c1 := b1.Scanline[y];
s:='';
for x := 0 to (b1.Width - 1)*3 do
if (x mod 3) = 2 then
s:=inttostr(c1[y])+inttostr(c1[y-1])+inttostr(c1[y-2]);
text.Lines.Add(s);
end;
finally
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
t:TSaveDialog;
begin
t:=TSaveDialog.Create(self);
if t.Execute then
begin
text.Lines.SaveToFile(t.FileName+'.txt');
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
resim:TOpenDialog;
begin
resim:=TOpenDialog.Create(self);
if resim.Execute then
begin
image1.Picture.LoadFromFile(resim.FileName);
end;
resim.Free;
end;
end.
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Scanline için nedenleriyle örnekleriyle mevcut linki aşağıda...

viewtopic.php?t=6231&start=0
Resim
Resim ....Resim
Cevapla