Index: magnolia-module-imaging/src/main/java/info/magnolia/imaging/OutputFormat.java
===================================================================
--- magnolia-module-imaging/src/main/java/info/magnolia/imaging/OutputFormat.java	(revision 52169)
+++ magnolia-module-imaging/src/main/java/info/magnolia/imaging/OutputFormat.java	(working copy)
@@ -49,6 +49,7 @@
     private boolean progressive;
     private int quality;
     private String compressionType;
+    private String bmpReplacement;
 
     /**
      * @deprecated since 2.1, implement {@link ImageGenerator#getOutputFormat(ParameterProvider)} instead
@@ -58,18 +59,19 @@
     public OutputFormat() {
     }
 
-    public OutputFormat(String formatName, boolean progressive, int quality, String compressionType) {
+    public OutputFormat(String formatName, boolean progressive, int quality, String compressionType, String bmpReplacement) {
         this.formatName = formatName;
         this.progressive = progressive;
         this.quality = quality;
         this.compressionType = compressionType;
+        this.bmpReplacement = bmpReplacement;
     }
 
     /**
      * @deprecated since 2.1, implement {@link ImageGenerator#getOutputFormat(ParameterProvider)} instead
      */
     public OutputFormat(String formatName, boolean progressive, int quality, String compressionType, boolean dynamicFormatType) {
-        this(formatName, progressive, quality, compressionType);
+        this(formatName, progressive, quality, compressionType, null);
         this.dynamicFormatType = dynamicFormatType;
     }
 
@@ -132,7 +134,15 @@
     public void setCompressionType(String compressionType) {
         this.compressionType = compressionType;
     }
+    
+    public String getBmpReplacement() {
+        return bmpReplacement;
+    }
 
+    public void setbmpReplacement(String bmpReplacement) {
+        this.bmpReplacement = bmpReplacement;
+    }
+
     /**
      * @deprecated since 2.1, implement {@link ImageGenerator#getOutputFormat(ParameterProvider)} instead
      */
Index: magnolia-module-imaging/src/main/java/info/magnolia/imaging/DefaultImageStreamer.java
===================================================================
--- magnolia-module-imaging/src/main/java/info/magnolia/imaging/DefaultImageStreamer.java	(revision 52448)
+++ magnolia-module-imaging/src/main/java/info/magnolia/imaging/DefaultImageStreamer.java	(working copy)
@@ -71,11 +71,21 @@
     protected void write(final BufferedImage img, final OutputStream out, final OutputFormat outputFormat) throws IOException {
         // this is factored out of ImageIO.write() to allow customization of the ImageWriteParam
         final ImageOutputStream imgOut = ImageIO.createImageOutputStream(out);
-        final ImageTypeSpecifier imgType = ImageTypeSpecifier.createFromRenderedImage(img);
-        final Iterator<ImageWriter> iter = ImageIO.getImageWriters(imgType, outputFormat.getFormatName());
+        //final ImageTypeSpecifier imgType = ImageTypeSpecifier.createFromRenderedImage(img);
+        //final Iterator<ImageWriter> iter = ImageIO.getImageWriters(imgType, outputFormat.getFormatName());
+        final Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(outputFormat.getFormatName());
         if (!iter.hasNext()) {
             throw new IllegalStateException("Can't find ImageWriter for " + outputFormat.getFormatName());
         }
+        
+        if(outputFormat.getFormatName().equals("bmp")){
+            String newFormat = "png";
+            if (outputFormat.getBmpReplacement() != null){
+                newFormat = outputFormat.getBmpReplacement();
+            }
+            writeBMPAsOtherFormat(img, imgOut, newFormat);
+            return;
+        }
         final ImageWriter imageWriter = iter.next();
         final ImageWriteParam params = imageWriter.getDefaultWriteParam();
 
@@ -87,5 +97,9 @@
         imgOut.flush();
         imgOut.close();
     }
+    
+    protected void writeBMPAsOtherFormat(BufferedImage image, ImageOutputStream imageOut, String formatName) throws IOException{
+        ImageIO.write(image, formatName, imageOut);
+    }
 
 }
