[med-svn] r3474 - in trunk/packages/imagej/trunk/debian: . patches

Andreas Tille tille at alioth.debian.org
Tue Jun 9 07:21:05 UTC 2009


Author: tille
Date: 2009-06-09 07:21:03 +0000 (Tue, 09 Jun 2009)
New Revision: 3474

Added:
   trunk/packages/imagej/trunk/debian/patches/
   trunk/packages/imagej/trunk/debian/patches/20_jpegwriter.patch
   trunk/packages/imagej/trunk/debian/patches/series
Modified:
   trunk/packages/imagej/trunk/debian/changelog
   trunk/packages/imagej/trunk/debian/control
   trunk/packages/imagej/trunk/debian/rules
Log:
New upstream version and try to apply a patch from Johan Henriksson <mahogny at maia.areta.org>
which unfortunately does not solve the whole problem


Modified: trunk/packages/imagej/trunk/debian/changelog
===================================================================
--- trunk/packages/imagej/trunk/debian/changelog	2009-06-08 15:47:30 UTC (rev 3473)
+++ trunk/packages/imagej/trunk/debian/changelog	2009-06-09 07:21:03 UTC (rev 3474)
@@ -1,4 +1,4 @@
-imagej (1.42n-1) unstable; urgency=low
+imagej (1.42q-1) unstable; urgency=low
 
   * New upstream version
   * Standards-Version: 3.8.1 (no changes needed)
@@ -13,8 +13,12 @@
   * debian/imagej.sh: set address to report bugs to to
     debian-med-packaging
   * debian/get-orig-source: less noisy
+  * debian/patches/20_jpegwriter.patch: Fix Jpeg library issue to
+    enable build with OpenJDK (Thanks to Johan Henriksson
+    <mahogny at maia.areta.org>)
+  * Use quilt to apply patch
 
- -- Andreas Tille <tille at debian.org>  Wed, 29 Apr 2009 12:10:50 +0200
+ -- Andreas Tille <tille at debian.org>  Tue, 09 Jun 2009 08:17:14 +0200
 
 imagej (1.41n-1) unstable; urgency=low
 

Modified: trunk/packages/imagej/trunk/debian/control
===================================================================
--- trunk/packages/imagej/trunk/debian/control	2009-06-08 15:47:30 UTC (rev 3473)
+++ trunk/packages/imagej/trunk/debian/control	2009-06-09 07:21:03 UTC (rev 3474)
@@ -5,7 +5,7 @@
 DM-Upload-Allowed: yes
 Uploaders: Paolo Ariano <paolo.ariano at unito.it>,
  Andreas Tille <tille at debian.org>
-Build-Depends: openjdk-6-jdk, cdbs, debhelper, ant, gif2png, debhelper (>= 5)
+Build-Depends: openjdk-6-jdk, cdbs, debhelper, ant, gif2png, debhelper, quilt
 Standards-Version: 3.8.1
 Vcs-Browser: http://svn.debian.org/wsvn/debian-med/trunk/packages/imagej/trunk/?rev=0&sc=0
 Vcs-Svn: svn://svn.debian.org/svn/debian-med/trunk/packages/imagej/trunk/

Added: trunk/packages/imagej/trunk/debian/patches/20_jpegwriter.patch
===================================================================
--- trunk/packages/imagej/trunk/debian/patches/20_jpegwriter.patch	                        (rev 0)
+++ trunk/packages/imagej/trunk/debian/patches/20_jpegwriter.patch	2009-06-09 07:21:03 UTC (rev 3474)
@@ -0,0 +1,110 @@
+Author: Johan Henriksson <mahogny at maia.areta.org>
+Date: Sun, 07 Jun 2009 21:42:47 +0200
+Forwarded: not yet
+License: Same as ImageJ
+Description: Fix a proting Problem of Jpeg library between
+ Sun Java and OpenJava
+--- imagej-1.42n.orig/ij/plugin/JpegWriter.java
++++ imagej-1.42n/ij/plugin/JpegWriter.java
+@@ -5,11 +5,20 @@
+ import ij.io.*;
+ import ij.measure.Calibration;
+ import java.util.Locale;	
+-import com.sun.image.codec.jpeg.*;
+ import java.awt.image.*;
+ import java.awt.*;
+ import java.io.*;
+ 
++import java.util.Iterator;
++import javax.imageio.stream.FileImageOutputStream;
++import javax.imageio.IIOImage;
++import javax.imageio.ImageIO;
++import javax.imageio.ImageTypeSpecifier;
++import javax.imageio.ImageWriter;
++import javax.imageio.ImageWriteParam;
++import javax.imageio.metadata.IIOMetadata;
++import org.w3c.dom.Element;
++
+ /** The File->Save As->Jpeg command (FileSaver.saveAsJpeg()) uses
+       this plugin to save images in JPEG format. The path where 
+       the image is to be saved is passed to the run method. ImageJ
+@@ -21,42 +30,54 @@
+         ImagePlus imp = WindowManager.getCurrentImage();
+         if (imp==null) return;
+         imp.startTiming();
+-        saveAsJpeg(imp,arg);
++        saveAsJpeg(imp,arg,FileSaver.getJpegQuality());
+         IJ.showTime(imp, imp.getStartTime(), "JpegWriter: ");
+-    } 
++    }
++
++    /** Thread-safe method. */
++    static public void save(ImagePlus imp, String path, int quality) {
++	if (imp==null) return;
++	imp.startTiming();
++	new JpegWriter().saveAsJpeg(imp,path,quality);
++        IJ.showTime(imp, imp.getStartTime(), "JpegWriter: ");
++    }
+ 
+-    void saveAsJpeg(ImagePlus imp, String path) {
++    void saveAsJpeg(ImagePlus imp, String path, int quality) {
+         //IJ.log("saveAsJpeg: "+path);
+         int width = imp.getWidth();
+         int height = imp.getHeight();
+-        int quality = FileSaver.getJpegQuality();
+         BufferedImage   bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+         try {
+-            FileOutputStream  f  = new FileOutputStream(path);                
+             Graphics g = bi.createGraphics();
+             g.drawImage(imp.getImage(), 0, 0, null);
+             g.dispose();            
+-            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(f);
+-            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
+-			if (quality==100) { // no color subsampling, better quality
+-            	param.setQuality(1f, true);
+-				param.setHorizontalSubsampling(1, 1);
+-				param.setHorizontalSubsampling(2, 1);
+-				param.setVerticalSubsampling(1, 1);
+-				param.setVerticalSubsampling(2, 1);
+-			} else {
+-				float q = quality==99?1f:(float)(quality/100.0);
+-            	param.setQuality(q, true);
+-            }
+-			Calibration cal = imp.getCalibration();
+-			String unit = cal.getUnit().toLowerCase(Locale.US);
+-			if (cal.getUnit().equals("inch")||cal.getUnit().equals("in")) {
+-					param.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
+-					param.setXDensity((int)Math.round(1.0/cal.pixelWidth));
+-					param.setYDensity((int)Math.round(1.0/cal.pixelHeight));
++			Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
++			try {
++				ImageWriter writer = (ImageWriter)iter.next();
++				writer.setOutput(ImageIO.createImageOutputStream(new File(path)));
++				ImageWriteParam param = writer.getDefaultWriteParam();
++				param.setCompressionMode(param.MODE_EXPLICIT);
++				param.setCompressionQuality(quality / 100f);
++				if (quality == 100)
++					param.setSourceSubsampling(1, 1, 0, 0);
++				IIOMetadata metaData = writer.getDefaultImageMetadata(new ImageTypeSpecifier(bi), param);
++				Calibration cal = imp.getCalibration();
++				String unit = cal.getUnit().toLowerCase(Locale.US);
++				if (cal.getUnit().equals("inch")||cal.getUnit().equals("in")) {
++					Element tree = (Element)metaData.getAsTree("javax_imageio_jpeg_image_1.0");
++					Element jfif = (Element)tree.getElementsByTagName("app0JFIF").item(0);
++					jfif.setAttribute("Xdensity", "" + (int)Math.round(1.0/cal.pixelWidth));
++					jfif.setAttribute("Ydensity", "" + (int)Math.round(1.0/cal.pixelHeight));
++					jfif.setAttribute("resUnits", "1"); // density is dots per inch*/
++					metaData.mergeTree("javax_imageio_jpeg_image_1.0",tree);
++				}
++				IIOImage iioImage = new IIOImage(bi, null, metaData);
++				writer.write(metaData, iioImage, param);
++			} catch (Exception e) {
++				e.printStackTrace();
++				System.err.println("falling back to plain jpeg writing because of " + e);
++				ImageIO.write(bi, "jpeg", new FileOutputStream(path));
+ 			}
+-            encoder.encode(bi, param);
+-            f.close();
+         }
+         catch (Exception e) {
+            IJ.error("Jpeg Writer", ""+e);

Added: trunk/packages/imagej/trunk/debian/patches/series
===================================================================
--- trunk/packages/imagej/trunk/debian/patches/series	                        (rev 0)
+++ trunk/packages/imagej/trunk/debian/patches/series	2009-06-09 07:21:03 UTC (rev 3474)
@@ -0,0 +1 @@
+20_jpegwriter.patch

Modified: trunk/packages/imagej/trunk/debian/rules
===================================================================
--- trunk/packages/imagej/trunk/debian/rules	2009-06-08 15:47:30 UTC (rev 3473)
+++ trunk/packages/imagej/trunk/debian/rules	2009-06-09 07:21:03 UTC (rev 3474)
@@ -6,7 +6,7 @@
 
 include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/ant.mk
-include /usr/share/cdbs/1/rules/simple-patchsys.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
 
 # when open_jdk will be jpeg compliant i will use /usr/lib/jvm/java-6-openjdk/
  JAVA_HOME		:= $(shell /usr/sbin/update-java-alternatives -l | head -1 | cut -d' ' -f 3)




More information about the debian-med-commit mailing list