1. /*
  2. * @(#)WBMPImageWriterSpi.java 1.3 04/05/05 05:42:00
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.imageio.plugins.wbmp;
  8. import javax.imageio.spi.ImageWriterSpi;
  9. import javax.imageio.spi.ServiceRegistry;
  10. import javax.imageio.spi.IIORegistry;
  11. import javax.imageio.ImageWriter;
  12. import javax.imageio.ImageTypeSpecifier;
  13. import javax.imageio.IIOException;
  14. import java.awt.image.ColorModel;
  15. import java.awt.image.IndexColorModel;
  16. import java.awt.image.MultiPixelPackedSampleModel;
  17. import java.awt.image.SampleModel;
  18. import java.util.Locale;
  19. public class WBMPImageWriterSpi extends ImageWriterSpi {
  20. private static String [] readerSpiNames =
  21. {"com.sun.imageio.plugins.wbmp.WBMPImageReaderSpi"};
  22. private static String[] formatNames = {"wbmp", "WBMP"};
  23. private static String[] entensions = {"wbmp"};
  24. private static String[] mimeType = {"image/vnd.wap.wbmp"};
  25. private boolean registered = false;
  26. public WBMPImageWriterSpi() {
  27. super("Sun Microsystems, Inc.",
  28. "1.0",
  29. formatNames,
  30. entensions,
  31. mimeType,
  32. "com.sun.imageio.plugins.wbmp.WBMPImageWriter",
  33. STANDARD_OUTPUT_TYPE,
  34. readerSpiNames,
  35. true,
  36. null, null, null, null,
  37. true,
  38. null, null, null, null);
  39. }
  40. public String getDescription(Locale locale) {
  41. return "Standard WBMP Image Writer";
  42. }
  43. public void onRegistration(ServiceRegistry registry,
  44. Class<?> category) {
  45. if (registered) {
  46. return;
  47. }
  48. registered = true;
  49. }
  50. public boolean canEncodeImage(ImageTypeSpecifier type) {
  51. SampleModel sm = type.getSampleModel();
  52. if (!(sm instanceof MultiPixelPackedSampleModel))
  53. return false;
  54. if (sm.getSampleSize(0) != 1)
  55. return false;
  56. return true;
  57. }
  58. public ImageWriter createWriterInstance(Object extension)
  59. throws IIOException {
  60. return new WBMPImageWriter(this);
  61. }
  62. }