Autore Topic: Creare una Bitmap da un'altra Bitmap  (Letto 468 volte)

Offline Elmvor

  • Utente normale
  • ***
  • Post: 166
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Creare una Bitmap da un'altra Bitmap
« il: 29 Luglio 2014, 14:53:16 CEST »
0
Non sapevo se postare qui o in altri problemi, ci penseranno i moderatori nel caso  :-)

Comunque, mi serve ottenere una Bitmap più lunga a partire da un'altra Bitmap. Lo spazio in più dovrebbe avere un colore o un pattern, qualsiasi cosa.

Ho provato a fare così:

Codice: [Seleziona]
Resources resources = this.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap bitmap = BitmapFactory.decodeFile(file.getPath());
android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
// default bitmap
if(bitmapConfig == null) {
      bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
// le bitmaps sono immutabili
// allora è necessario convertirle in mutabili
// bitmap mappa
bitmap = bitmap.copy(bitmapConfig, true);

Bitmap newBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight() + 150);         

// canvas per scrivere/disegnare sul bitmap
Canvas canvas = new Canvas(newBitmap);
// new antialised Paint
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
           
// text size in pixels
paint.setTextSize((int) (20 * scale));
// text shadow (raggio, inclinazione sinistra, inclinazione destra, colore)
paint.setShadowLayer(20, 0, 0, Color.RED);

// varia roba per disegnare sul canvas

return newBitmap;

Sarà che non ne capisco ancora bene il funzionamento ma newBitmap risulta null. In particolare risulta null se sommo una quantità in pixel
all'altezza.

Update: no non è vero, ora anche se non aggiungo nulla, non lo so.
« Ultima modifica: 29 Luglio 2014, 15:06:31 CEST da Elmvor »

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Creare una Bitmap da un'altra Bitmap
« Risposta #1 il: 22 Agosto 2014, 23:34:13 CEST »
0
Una possibile soluzione:
1. creare un nuovo Bitmap vuoto della dimensione voluta
2. creare un canvas a partire da questo bitmap
3. disegnare il Bitmap di partenza sulla Canvas
In codice:
Codice (Java): [Seleziona]
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() + 150, conf);
Canvas canvas = new Canvas(bmp);
canvas.drawBitmap(bitmap, 0, 0, paint);
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline Elmvor

  • Utente normale
  • ***
  • Post: 166
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Re:Creare una Bitmap da un'altra Bitmap
« Risposta #2 il: 24 Agosto 2014, 15:56:52 CEST »
0
Ehi ciao. Grazie della risposta, ma ho risolto, più o meno. Diciamo che ho capito come fare quello che ho chiesto, ma ora non riesco più a creare la
Bitmap dal telefono. Ottengo sempre NullPointerException, come se la BitmapFactory.decodeFile non funzionasse...! E non ne comprendo il motivo.