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?
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.
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.
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. Cevapları Gizle
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.