Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Resim içerisindeki Herhangi Bir Renge Zemin Resmi Verme (2 renk verme (Pattern))
#1
Merhaba,

Elimizde bir resim olduğunu düşünürsek; Örneğin resimdeki sarı renklerin tümünü beyaz yapabiliyoruz. Sarı olan tüm renkleri Mavi+Beyaz olarak (pattern) nasıl işleyebiliriz bu konuda daha önce uğraşan varsa nasıl bir yol izlemeliyiz.

*Yani resim içerisindeki tüm sarı renkleri , zemin resmi olarak seçtiğimiz resimle nasıl döşeye biliriz.

Teşekkürler.
Cevapla
#2
Soruyu tam anlayamadım ama mavi+beyaz sonucunda siz yine 1 renk elde etmiş olmayacak mısınız?
There's no place like 127.0.0.1
WWW
Cevapla
#3
(15-04-2019, Saat: 12:47)SimaWB Adlı Kullanıcıdan Alıntı: Soruyu tam anlayamadım ama mavi+beyaz sonucunda siz yine 1 renk elde etmiş olmayacak mısınız?

Merhaba,

Konu başlığını ve içeriğini değiştirdim. 

İlgili resim içerisindeki sarı renklerin tümünü seçtiğim bir resim ile döşemek istiyorum. Seçili rengin olduğu her yeri seçtiğim zemin resmi ile döşemek.

Teşekkürler.
Cevapla
#4
Ana resmi ele alıp, tek tek pikselleri okuyup sarı renkli piksellerin top ve left ine göre pattern resimden ilgili pikselleri okuyup ana resimdeki piksellerin yerine basabilirsiniz.
WWW
Cevapla
#5
Eğer ilgili resim içerisindeki belirttiğiniz renk kodu sabitse bu rengi saydam tanımlayıp zemin resmi dediğiniz resmin üzerine uygulamayı denediniz mi?
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#6
(15-04-2019, Saat: 15:46)engerex Adlı Kullanıcıdan Alıntı: Eğer ilgili resim içerisindeki belirttiğiniz renk kodu sabitse bu rengi saydam tanımlayıp zemin resmi dediğiniz resmin üzerine uygulamayı denediniz mi?

Renk kodları sabit evet, rengi renk ile değiştirmeyi anlayabiliyorum burada sorun yok, rengi resim ile değiştirmenin nasıl olacağını anlayamıyorum, Sarı renk gördüğün her yere şu resmi döşe şeklinde.
Cevapla
#7
http://docwiki.embarcadero.com/CodeExamp...s_(Delphi)
Peyami Safa:"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır"
Can Yücel:"Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı"
Sinan Canan:"Bildiğini zannettiğin an hiç bir şey öğrenemezsin"
WWW
Cevapla
#8
Rengi resim ile değiştirmeyeceksiniz, resimde sarı görünen pikselin rengini değiştirmek istediğiniz resimdeki aynı pikselde bulunan renk ile değiştireceksiniz.

bi nevi resimleri üst üste bindirmiş olacaksınız.

şöyle bir kod yazdım bakın bi deneyin.

formun üstüne 2 tane aynı boyutta fakat farklı resimler olan imaj koyun, bmp olsun mümkünse.

  type
 PRGBTripleArray = ^TRGBTripleArray;
TRGBTripleArray = array[0..32765] of TRGBTriple;
----------------------------------------------------------------

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
bmp : TBitmap;
p: array of PRGBTripleArray;
trenk:tcolor;
x,y:integer;
begin
bmp := TBitmap.Create; // bitmap olustur
bmp.Width := Image1.Width; // width ayarla
bmp.Height := Image1.Height; // height ayarla
bmp:=Image1.Picture.Bitmap; // resmi bitmap e yukle


Setlength(p,bmp.Height); // p nin boyutunu ayarla (bitmap in satır sayısı kadar)

for x:=0 to bmp.Height-1 do // her satır pikselleri taramak icin donguye sok
  begin // x dongu
     p[x]:=bmp.ScanLine[x]; // ilgili satırı tarayıp p ye yukle

for y:=0 to bmp.Width do begin // bitmap uzunlugu kadar donguye sok
if (y<bmp.Width-2) Then Begin  // sondaki 2 pikseli atıyorum sona tek çizgi atmasın diye

if (p[x][y].rgbtRed>=250)
  then begin
  Image1.Canvas.Pixels[y,x]:=Image2.Canvas.Pixels[y,x];
       end;
                        End;
                         end;  // bitmap uzunlugu kadar donguye sok
  end;  // x dongu

end;


procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Caption:=inttostr(GetRValue(Image1.Canvas.Pixels[x,y]))+' - '+inttostr(GetGValue(Image1.Canvas.Pixels[x,y]))+' - '+inttostr(GetBValue(Image1.Canvas.Pixels[x,y]));
end;


image1 in mouse move olayında mouse ile üzerinde gezerken hangi pikselde ise o pikselin rgb değerlerini alın. sarı için R değeri 250 ve üstü dedim ben mesela, bmp ye image1 i yüklüyorum, ScanLine ile tarıyorum, her pikselin R değerine bakıp 250 ve üstü ise (sarıya benziyor ise yani) git image2 nin aynı x ve y deki renk değerini al image1 in üstüne bas diyorum. Böylece sarı rengin üstüne yavaş yavaş image2 yi basıyor.
WWW
Cevapla
#9
Örnek bir resim ve zemin resmi var mı?
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#10
Merhaba,
Cevaplar için teşekkür ederim, yapmak istediğim. aşağıdaki gibi.

IQ1Exww.gif
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  StatusBar nasıl resim ekliyebilirim? burak 6 335 12-04-2019, Saat: 18:55
Son Yorum: SimaWB
  Resim karsilastirma arsl01 3 263 07-03-2019, Saat: 15:50
Son Yorum: arsl01
  BMP resim dosyalarında boyutlandırmada şeklin bozulmasını nasıl önlenebilir pro_imaj 5 399 20-02-2019, Saat: 08:50
Son Yorum: frmman
  resim karşılaştırma burakb44 9 485 15-02-2019, Saat: 16:27
Son Yorum: Bay_Y
  Formun ve içerisindeki nesnelerin ölçeklendirmesi Abdullah ILGAZ 5 579 15-01-2019, Saat: 23:27
Son Yorum: CesuR



Konuyu Okuyanlar: 1 Ziyaretçi