cypressious
Ambitioniertes Mitglied
- 23
Hallo zusammen,
ich habe ein Problem beim Verkleinern/Vergrößern von zwei Bitmaps, die ich dann zusammenfügen möchte.
Zunächst lade ich das eine Bitmap aus einer Datei und das andere aus den Resourcen.
Dann kommt das Skalieren:
Der Vorgang sorgt dafür, dass rImageMotiv um einen bestimmten Faktor größer ist, als rImagePic. Dabei soll die längste Kante von rImagePic 640 sein.
In einem späteren Schritt male ich per Canvas rImagePic in rImageMotiv rein. Dabei stellt sich aber raus, dass die Proportionen ganz und gar nicht stimmen. Ich habe das ganze auch mal debuggt und festgestellt, dass die neu erstellten Bitmaps jeweils Höhe und Breite -1 haben, obwohl die geladenen Bitmaps die richtige Größe haben.
Sieht jemand einen Fehler oder kann mir eine Alternative vorschlagen? Ich für meinen Teil verzweifle ein bisschen an dem Code.
Grüße,
cypressious
ich habe ein Problem beim Verkleinern/Vergrößern von zwei Bitmaps, die ich dann zusammenfügen möchte.
Zunächst lade ich das eine Bitmap aus einer Datei und das andere aus den Resourcen.
Code:
Bitmap imageMotiv = ((BitmapDrawable) getResources().getDrawable(
R.drawable.motiv_canvas)).getBitmap();
Bitmap imagePic = ((BitmapDrawable) Drawable.createFromPath(imageUri))
.getBitmap();
Code:
float picScale = ((float) 640)
/ ((float) Math.max(imagePic.getHeight(), imagePic.getWidth()));
int newHeight = (int) (imagePic.getHeight() * picScale);
int newWidth = (int) (imagePic.getWidth() * picScale);
Bitmap rImagePic = Bitmap.createScaledBitmap(imagePic, newWidth,
newHeight, true);
Bitmap rImageMotiv = Bitmap.createScaledBitmap(imageMotiv,
(int) ((float) imagePic.getWidth() * 1.25F),
(int) ((float) imagePic.getHeight() * 4F / 3F), true);
In einem späteren Schritt male ich per Canvas rImagePic in rImageMotiv rein. Dabei stellt sich aber raus, dass die Proportionen ganz und gar nicht stimmen. Ich habe das ganze auch mal debuggt und festgestellt, dass die neu erstellten Bitmaps jeweils Höhe und Breite -1 haben, obwohl die geladenen Bitmaps die richtige Größe haben.
Sieht jemand einen Fehler oder kann mir eine Alternative vorschlagen? Ich für meinen Teil verzweifle ein bisschen an dem Code.
Grüße,
cypressious