2012-05-31 26 views
4

。從位圖使用getpixel api獲取逐個像素並進行一些修改並設置像素,對循環中的所有像素執行此操作。我可以看到所有不能找到原因的像素的相同Alpha值。 請提出解決方案。 Please find the attached image to see the issue我在使用getpixels()和setpixels()api後,在圖像中的邊緣不光滑setpixels後android

    int width, height; 
      height = bmpOriginal.getHeight(); 
      width = bmpOriginal.getWidth(); 

      int[] pix = new int[width * height]; 
      bmpOriginal.getPixels(pix, 0, width, 0, 0, width, height); 



      int R, G, B, A; 


      float[] hsv = new float[3]; 
      float[] hsv2 = new float[3]; 
      float[] hsv3 = new float[3]; 



      for (int y = 0; y < height; y++){ 
      for (int x = 0; x < width; x++) 
      { 
       int index = y * width + x; 
       R = (pix[index] >> 16) & 0xff;  //bitwise shifting 
       G = (pix[index] >> 8) & 0xff; 
       B = pix[index] & 0xff;    


       Color.RGBToHSV(R, G, B, hsv);     

       int value = tempBitmap.getPixel(x, y); 


       Color.colorToHSV(value, hsv2);       

       int x = Color.HSVToColor(hsv3); 
       pix[index] = x; 


       } 

      } 

      bmpOriginal.setPixels(pix, 0, width, 0, 0, width, height); 
+0

我可以看到一些代碼嗎? – Ronnie

+0

你是怎麼解決這個問題的?我也堅持這一點。 – VickyS

+0

我也堅持這一點。 – dasdasd

回答

2

使用setAntiAlias(true) API您的油漆對象上打開抗鋸齒。 也嘗試setFilterBitmap(true)上油漆。

BitmapDrawable寫出位圖。然後,在使用它之前,請撥打mBmpdrawable.setAntiAlias(true);。也可以嘗試撥打mBmpdrawable.setFilterBitmap(true)

+0

謝謝,我現在試過,但仍然可以看到這個問題。請在此解釋一下。 – pavan

+0

在獲取像素之後並在設置像素之前,我沒有使用繪畫對象。使用顏色API我正在更改顏色。那麼在這種情況下如何應用setAntiAlis()? – pavan

+0

我已經添加了代碼。 – pavan

相關問題