Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
848
Tıklama
0
Öne Çıkarma
Renkle doldurma aracı yapmak
U
13 yıl
Yüzbaşı
Konu Sahibi

Paintteki gibi tıklanan bölgeyi renkle dolduran bir araç yapmak istiyorum. Ama nasıl olabileceği konusunda pek emin değilim. Tıklanan noktadan başlayarak recursive olarak tüm pikselleri kontrol eden ve rengini değiştiren, eğer renk diğerlerinden farklıysa orada duran bir sistem yazılabilir ama bu mu yapılması gereken?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



U
13 yıl
Yüzbaşı
Konu Sahibi

Düşündüğüm gibi bir kod yazdım ama tahmin edilebileceği gibi stackOverFlow verdi.
private void calculatePoints(Bitmap bitmap) { 
natColor = bitmap.getPixel((int)getX(), (int)getY());
calculatePointsSecondary(bitmap, (int)getX(), (int)getY());
}

private void calculatePointsSecondary(Bitmap bitmap,int x,int y) {
addPoint(new PointF(x,y)); bitmap.setPixel(x, y, color);
if (bitmap.getPixel(x+1, y) == natColor) calculatePointsSecondary(bitmap, x+1, y);
if (bitmap.getPixel(x-1, y) == natColor) calculatePointsSecondary(bitmap, x-1, y);
if (bitmap.getPixel(x, y+1) == natColor) calculatePointsSecondary(bitmap, x, y+1);
if (bitmap.getPixel(x, y-1) == natColor) calculatePointsSecondary(bitmap, x, y-1);
}


Burada kodun yaptığı resmi alıp seçilen noktanın her yönüne ikincil metodu göndererek eğer seçilen noktayla aynı renkte ise listeye eklemek değilse devam ettirmemek.
Boyaması farklı bir methodla yapılıyor ancak sorun burada. Başka yolu olan ya da bunu sorunu çözebilecek varsa yardım bekliyorum.

Edit: Methoddaki hatayı buldum ve düzelttim ancak birşey değişmedi. İlk halinde sonsuz döngüye giriyordu.





< Bu mesaj bu kişi tarafından değiştirildi umutde -- 25 Temmuz 2012; 5:20:29 >
Bu mesaja 1 cevap geldi.
E
13 yıl
Teğmen

selam;

methodunuzda dikkat edilmesi gereken önemli bir nokta daha var :
bir resim düşünün sol üst köşesi beyaz bölüm, geri kalanı farklı renkler, desenler.. sağ alt köşeside beyaz bölüm.
siz sağ alt köşeye tıkladığınız zaman, sadece o bölgenin boyanması gerekir, sol üst beyaz olarak kalmalıdır.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.