2015-05-11 1 views
1

У меня есть растровое изображение что-то вроде этого http://i.hizliresim.com/GYR6jV.jpg на файловой системе. Мне нужно сделать черную часть изображения прозрачной и получить круговое растровое изображение. прозрачный метод, который я использовал:Как сделать часть растрового изображения прозрачной?

public static Bitmap makeTransparent(Bitmap bitmap, int replaceThisColor) { 
     if (bitmap != null) { 
      int picw = bitmap.getWidth(); 
      int pich = bitmap.getHeight(); 
      int[] pix = new int[picw * pich]; 
      bitmap.getPixels(pix, 0, picw, 0, 0, picw, pich); 

      for (int y = 0; y < pich; y++) { 
       // from left to right 
       for (int x = 0; x < picw; x++) { 
        int index = y * picw + x; 
        int r = (pix[index] >> 16) & 0xff; 
        int g = (pix[index] >> 8) & 0xff; 
        int b = pix[index] & 0xff; 

        if (pix[index] == replaceThisColor) { 
         pix[index] = Color.TRANSPARENT; 
        } else { 
         break; 
        } 
       } 

       // from right to left 
       for (int x = picw - 1; x >= 0; x--) { 
        int index = y * picw + x; 
        int r = (pix[index] >> 16) & 0xff; 
        int g = (pix[index] >> 8) & 0xff; 
        int b = pix[index] & 0xff; 

        if (pix[index] == replaceThisColor) { 
         pix[index] = Color.TRANSPARENT; 
        } else { 
         break; 
        } 
       } 
      } 

      Bitmap bm = Bitmap.createBitmap(pix, picw, pich, 
        Bitmap.Config.ARGB_8888); 

      return bm; 
     } 
     return null; 
    } 

Спасибо.

+0

Отображаемое растровое изображение отображает полное изображение. Но только сообщение Circular crop отправляется на сервер? Я прав? @baha –

ответ

0

Эй, если вы хотите, чтобы создать круг изображение, которое вы можете использовать https://github.com/hdodenhof/CircleImageView

Edit: Другим решением является первым сделать прозрачную форму изображения Ressource затем нарисуйте изображение на диске (и только диск)

+0

нет. Мне просто нужно загрузить круговое обрезанное изображение на сервер. Таким образом, растровое изображение обрезки необходимо. – baha

+0

ах, тогда, возможно, попробуйте Color.alpha (Color.TRANSPARENT) вместо Color.TRANSPARENT –

+0

ничего не изменилось – baha