From 8fe8c3a1f2d2e6cd82e85c6d2e92270eb319b71b Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sun, 15 Sep 2013 17:36:22 +0200 Subject: [PATCH] refactor: merge BitmapUtils.createBitmap() into CanvasAdapter --- .../oscim/android/canvas/AndroidGraphics.java | 3 +- .../oscim/android/canvas/AndroidGraphics.java | 3 +- .../src/org/oscim/awt/AwtGraphics.java | 5 +-- vtm/src/org/oscim/backend/BitmapUtils.java | 41 ------------------- vtm/src/org/oscim/backend/CanvasAdapter.java | 20 +++++++++ .../renderer/test/SymbolRenderLayer.java | 8 ++-- 6 files changed, 27 insertions(+), 53 deletions(-) delete mode 100644 vtm/src/org/oscim/backend/BitmapUtils.java diff --git a/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java b/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java index 2b51fcab..13face3a 100644 --- a/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java +++ b/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java @@ -17,7 +17,6 @@ package org.oscim.android.canvas; import java.io.IOException; import java.io.InputStream; -import org.oscim.backend.BitmapUtils; import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; @@ -49,7 +48,7 @@ public final class AndroidGraphics extends CanvasAdapter { @Override public Bitmap loadBitmapAsset(String fileName) { try { - return BitmapUtils.createBitmap(fileName); + return createBitmap(fileName); } catch (IOException e) { e.printStackTrace(); } diff --git a/vtm-gdx-android/src/org/oscim/android/canvas/AndroidGraphics.java b/vtm-gdx-android/src/org/oscim/android/canvas/AndroidGraphics.java index 9f4f8c72..52e17098 100644 --- a/vtm-gdx-android/src/org/oscim/android/canvas/AndroidGraphics.java +++ b/vtm-gdx-android/src/org/oscim/android/canvas/AndroidGraphics.java @@ -17,7 +17,6 @@ package org.oscim.android.canvas; import java.io.IOException; import java.io.InputStream; -import org.oscim.backend.BitmapUtils; import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; @@ -120,7 +119,7 @@ public final class AndroidGraphics extends CanvasAdapter { @Override public Bitmap loadBitmapAsset(String fileName) { try { - return BitmapUtils.createBitmap(fileName); + return createBitmap(fileName); } catch (IOException e) { e.printStackTrace(); } diff --git a/vtm-gdx-desktop/src/org/oscim/awt/AwtGraphics.java b/vtm-gdx-desktop/src/org/oscim/awt/AwtGraphics.java index 2434d3ec..a987dbfe 100644 --- a/vtm-gdx-desktop/src/org/oscim/awt/AwtGraphics.java +++ b/vtm-gdx-desktop/src/org/oscim/awt/AwtGraphics.java @@ -8,10 +8,9 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; +import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; -import org.oscim.backend.BitmapUtils; -import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Paint; public class AwtGraphics extends CanvasAdapter { @@ -90,7 +89,7 @@ public class AwtGraphics extends CanvasAdapter { @Override public Bitmap loadBitmapAsset(String fileName) { try { - return BitmapUtils.createBitmap(fileName); + return createBitmap(fileName); } catch (IOException e) { e.printStackTrace(); } diff --git a/vtm/src/org/oscim/backend/BitmapUtils.java b/vtm/src/org/oscim/backend/BitmapUtils.java deleted file mode 100644 index 686301e0..00000000 --- a/vtm/src/org/oscim/backend/BitmapUtils.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2013 Hannes Janetzek - * - * This program is free software: you can redistribute it and/or modify it under the - * terms of the GNU Lesser General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License along with - * this program. If not, see . - */ -package org.oscim.backend; - -import java.io.IOException; -import java.io.InputStream; - -import org.oscim.backend.canvas.Bitmap; - -public final class BitmapUtils { - public static Bitmap createBitmap(String src) throws IOException { - if (src == null || src.length() == 0) { - // no image source defined - return null; - } - - InputStream inputStream = AssetAdapter.g.openFileAsStream(src); - if (inputStream == null) - throw new IllegalArgumentException("invalid bitmap source: " + src); - - Bitmap bitmap = CanvasAdapter.g.decodeBitmap(inputStream); - inputStream.close(); - return bitmap; - } - - private BitmapUtils() { - } - -} diff --git a/vtm/src/org/oscim/backend/CanvasAdapter.java b/vtm/src/org/oscim/backend/CanvasAdapter.java index 31fbaaab..543cecb1 100644 --- a/vtm/src/org/oscim/backend/CanvasAdapter.java +++ b/vtm/src/org/oscim/backend/CanvasAdapter.java @@ -15,6 +15,7 @@ */ package org.oscim.backend; +import java.io.IOException; import java.io.InputStream; import org.oscim.backend.canvas.Bitmap; @@ -23,6 +24,8 @@ import org.oscim.backend.canvas.Paint; public abstract class CanvasAdapter { + protected static final String TAG = CanvasAdapter.class.getName(); + public static CanvasAdapter g; public static float dpi = 240; @@ -45,4 +48,21 @@ public abstract class CanvasAdapter { public abstract Bitmap getBitmap(int width, int height, int format); public abstract Canvas getCanvas(); + + protected static Bitmap createBitmap(String src) throws IOException { + if (src == null || src.length() == 0) { + // no image source defined + return null; + } + + InputStream inputStream = AssetAdapter.g.openFileAsStream(src); + if (inputStream == null){ + Log.e(TAG, "invalid bitmap source: " + src); + return null; + } + + Bitmap bitmap = CanvasAdapter.g.decodeBitmap(inputStream); + inputStream.close(); + return bitmap; + } } diff --git a/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java b/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java index 6ebdbadd..3eab526f 100644 --- a/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java +++ b/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java @@ -14,9 +14,7 @@ */ package org.oscim.renderer.test; -import java.io.IOException; - -import org.oscim.backend.BitmapUtils; +import org.oscim.backend.CanvasAdapter; import org.oscim.core.MapPosition; import org.oscim.renderer.ElementRenderer; import org.oscim.renderer.MapRenderer.Matrices; @@ -34,8 +32,8 @@ public class SymbolRenderLayer extends ElementRenderer { it.billboard = false; try { - it.bitmap = BitmapUtils.createBitmap("jar:symbols/cafe.png"); - } catch (IOException e) { + it.bitmap = CanvasAdapter.g.loadBitmapAsset("jar:symbols/cafe.png"); + } catch (Exception e) { e.printStackTrace(); }