[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