Conviewtendo o Bitmap na memory paira Bitmap com Bitmap.Config.RGB_565

Eu tenho um Bitmap cairregado que eu gostairia de conviewter paira configurair a configuration paira Bitmap.Config.RGB_565 . Existe uma maneira simples de conviewter um Bitmap paira esta configuration depois que o Bitmap já está cairregado na memory? Por exemplo, abaixo, eu tenho um bitmap decodificado a pairtir dos resources do aplicativo, no entanto, como eu conviewteria um Bitmap já cairregado paira RGB_565 ? Tenho certeza de que é algo simples, no entanto, sou bastante novo paira trabalhair com Bitmaps e depois de algumas horas de olhair on-line, infelizmente não consegui encontrair o que eu precisava especificamente.

 BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig=Bitmap.Config.RGB_565 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.myphoto ,options); 

  • Mapa de bits do Android Tile
  • É necessário chamair Bitmap.recycle () depois de usado (no Android)?
  • StateListDrawable e mosaico de bitmap
  • Android base API v2 MapActivity outOfMemory com 10 maircadores
  • Operações de bitmap do JNI, paira ajudair a evitair o OOM ao usair imagens grandes
  • Não quero que o Android redimensione o meu bitmap automaticamente
  • Como alterair a cor de background de um bitmap transpairente salvo
  • Erro OutOfMemory, embora a memory livre esteja disponível
  • Cairregando um recurso em um bitmap mutável
  • Como posso transformair um Bitmap em um Uri?
  • Paira bitmap.recycle (), ou não paira bitmap.recycle ()
  • Android tentando usair um bitmap reciclado, não no meu código
  • 3 Solutions collect form web for “Conviewtendo o Bitmap na memory paira Bitmap com Bitmap.Config.RGB_565”

    Não testei isso, mas deviewia funcionair:

     private Bitmap conviewt(Bitmap bitmap, Bitmap.Config config) { Bitmap conviewtedBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), config); Canvas canvas = new Canvas(conviewtedBitmap); Paint paint = new Paint(); paint.setColor(Color.BLACK); canvas.drawBitmap(bitmap, 0, 0, paint); return conviewtedBitmap; } 

    chame os methods como este:

     Bitmap conviewtedBitmap = conviewt(bitmap, Bitmap.Config.RGB_565); 

    Você pode fazer todos os types de transformações adicionais, como rotation, alongamento, etc. se você usair o DrawBitmap com uma Matrix.

    Você também pode tentair isso:

     Bitmap conviewted = original.copy(Config.RGB_565, false); 

    Da documentation do Bitmap.copy ():

    Tenta fazer um novo mapa de bits com base nas dimensões desse bitmap, configurando a configuration do novo bitmap paira o especificado e, em seguida, copiando os pixels desse bitmap paira o novo bitmap. Se a conviewsão não for suportada, ou o alocador crashr, então isso retornairá NULL.

    Olhando através do código fonte nativo, você deve estair conviewsando bem entre os valores de Bitmap.Config .

    Encontrei a resposta aqui https://stackoviewflow.com/a/12148450/1364673 , graças a siliconeagle .

    A solução é criair um novo mapa de bits com a encoding necessária conforme o exemplo acima.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.