1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. cypressious, 06.02.2011 #1
    cypressious

    cypressious Threadstarter Android-Hilfe.de Mitglied

    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.
    Code:
    Bitmap imageMotiv = ((BitmapDrawable) getResources().getDrawable(
                    R.drawable.motiv_canvas)).getBitmap();
    
    Bitmap imagePic = ((BitmapDrawable) Drawable.createFromPath(imageUri))
                    .getBitmap();
    Dann kommt das Skalieren:
    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);
    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
     
  2. cypressious, 06.02.2011 #2
    cypressious

    cypressious Threadstarter Android-Hilfe.de Mitglied

    Naja, das Geheimnis ist gelüft, es waren rein logsiche Fehler. Zunächst muss im zweiten Teil der Code folgendermaßen lauten:
    Code:
    Bitmap rImageMotiv = Bitmap.createScaledBitmap(imageMotiv,
                    (int) ((float) [B]rImagePic[/B].getWidth() * 1.25F),
                    (int) ((float) [B]rImagePic[/B].getHeight() * 4F / 3F), true);
    
    Sonst würde man die Werte des unveränderten Bitmaps nehmen. Zum anderen hat das Verhältnis 4/3 nicht gestimmt, was aber mit dem Problem im Wesentlichen nichts zu tun hat.

    Dass der Debugger mir als Breite und Höhe -1 ausgegeben hat, verstehe ich nun immernoch nicht, allerdings hat sich das als irrelevant herausgestellt.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Wandernder Text Android App Entwicklung 17.10.2017
[OFFEN] Lists-in-List-Problem Android App Entwicklung 12.10.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung 24.05.2017
[ERLEDIGT] put in HashMap bringt App zum abstürzen Android App Entwicklung 22.05.2017
[ERLEDIGT] Problem mit Async Task und auszuführender Aufgabe Android App Entwicklung 02.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Excel Dokument mithilfe von JExcelAPI auslesen funktioniert nicht :/ Android App Entwicklung 02.03.2017
Notizen App problem Android App Entwicklung 11.01.2017
Text View erzeugt rendering Problem Android App Entwicklung 18.11.2016
Du betrachtest das Thema "Bitmaps skalieren und zusammenfügen (Problem)" im Forum "Android App Entwicklung",