2016-04-12 20 views
1

Bu kodu kullanarak Accord.net taşınabilir kütüphaneden SimpleShapeChecker (kullanarak bir daire) bulduktan sonra Yani, bir daire çizin çalışıyorum: AncakSimpleShapeChecker kullanılarak bir daire tespit edildikten sonra nasıl daire çizilir? (Accord.net Taşınabilir)

// locate objects using blob counter 
BlobCounter blobCounter = new BlobCounter(); 
blobCounter.ProcessImage(bitmap); 
Blob[] blobs = blobCounter.GetObjectsInformation(); 
// create Graphics object to draw on the image and a pen 
Graphics g = Graphics.FromImage(bitmap); 
Pen redPen = new Pen(Color.Red, 2); 
// check each object and draw circle around objects, which 
// are recognized as circles 
for (int i = 0, n = blobs.Length; i < n; i++) 
{ 
    List<IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints(blobs[i]); 

    Point center; 
    float radius; 

    if (shapeChecker.IsCircle(edgePoints, out center, out radius)) 
      { 
      g.DrawEllipse(redPen, 
       (int) (center.X - radius), 
       (int) (center.Y - radius), 
       (int) (radius * 2), 
       (int) (radius * 2)); 
      } 
} 

redPen.Dispose(); 
g.Dispose(); 

, hem Sistemi Ben bir daire bulduktan sonra

"inaccessible due to its protection level" 

nedenle ben gerçekten bir şey yapamaz: .Drawing.Graphics ve System.Drawing.Pen bir hata gösteriyor. Bunun için bir çözüm var mı? Shim Çizim Nuget paket içerisinde

cevap

1

System.Drawing türleri, sadece karşılık gelen Taşınabilir Anlaşması (ve Taşınabilir AForge) kütüphaneler tarafından dahili kullanım için tasarlanmıştır. Bunun yerine bitmap görüntü nesne üzerinde çizmek için Graphics kullanmanın

, bunun yerine size (Windows, Android'de Android.Graphics.Bitmap ve iOS'ta CGImage üzerinde WriteableBitmap) üzerinde çalıştıkları platformda uygun resim tipine bitmap döküm ve çizim kullanmalıdır Her bir platformda mevcut araçlar.

+0

Görüyorum. Teşekkürler. Çalışıyorum. Bir daire çizmek için WriteableBitmapEx kullanmıştım. –