tkormann 01/10/15 07:40:15
Modified: resources/org/apache/batik/apps/svgbrowser/resources
GUI.properties
sources/org/apache/batik/apps/svgbrowser
JSVGViewerFrame.java
Added: sources/org/apache/batik/apps/svgbrowser
JPEGOptionPanel.java
Log:
add a dialog box to control JPEG quality
Revision Changes Path
1.35 +9 -1
xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties
Index: GUI.properties
===================================================================
RCS file:
/home/cvs/xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- GUI.properties 2001/10/15 09:33:44 1.34
+++ GUI.properties 2001/10/15 14:40:15 1.35
@@ -9,7 +9,7 @@
# The viewer's GUI resources.
#
# Author: [EMAIL PROTECTED]
-# $Id: GUI.properties,v 1.34 2001/10/15 09:33:44 tkormann Exp $
+# $Id: GUI.properties,v 1.35 2001/10/15 14:40:15 tkormann Exp $
#
ViewSource.width = 750
@@ -397,6 +397,14 @@
PreferenceDialog.icon.networkPref = \
org/apache/batik/apps/svgbrowser/resources/networkPref.gif
+
+#
+# JPEGOptionPanel
+#
+
+OKButton.text = OK
+JPEGOptionPanel.dialog.title = JPEG Quality
+JPEGOptionPanel.label = Quality:
#
# About Box parameters
1.60 +10 -3
xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
Index: JSVGViewerFrame.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- JSVGViewerFrame.java 2001/10/15 11:32:56 1.59
+++ JSVGViewerFrame.java 2001/10/15 14:40:15 1.60
@@ -157,7 +157,7 @@
* This class represents a SVG viewer swing frame.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: JSVGViewerFrame.java,v 1.59 2001/10/15 11:32:56 hillion Exp $
+ * @version $Id: JSVGViewerFrame.java,v 1.60 2001/10/15 14:40:15 tkormann Exp $
*/
public class JSVGViewerFrame
extends JFrame
@@ -896,6 +896,9 @@
int choice = fileChooser.showSaveDialog(JSVGViewerFrame.this);
if (choice == JFileChooser.APPROVE_OPTION) {
+ float quality =
+ JPEGOptionPanel.showDialog(JSVGViewerFrame.this);
+
final File f = fileChooser.getSelectedFile();
BufferedImage buffer = svgCanvas.getOffScreen();
if (buffer != null) {
@@ -906,8 +909,12 @@
int w = buffer.getWidth();
int h = buffer.getHeight();
final ImageTranscoder trans = new JPEGTranscoder();
-
trans.addTranscodingHint(JPEGTranscoder.KEY_XML_PARSER_CLASSNAME,
- application.getXMLParserClassName());
+ trans.addTranscodingHint
+ (JPEGTranscoder.KEY_XML_PARSER_CLASSNAME,
+ application.getXMLParserClassName());
+ trans.addTranscodingHint
+ (JPEGTranscoder.KEY_QUALITY, new Float(quality));
+
final BufferedImage img = trans.createImage(w, h);
// paint the buffer to the image
1.1
xml-batik/sources/org/apache/batik/apps/svgbrowser/JPEGOptionPanel.java
Index: JPEGOptionPanel.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.batik.apps.svgbrowser;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.util.Hashtable;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSlider;
import org.apache.batik.util.gui.ExtendedGridBagConstraints;
import org.apache.batik.util.gui.resource.ResourceManager;
/**
* This class represents a panel to control jpeg encoding quality.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
* @version $Id: JPEGOptionPanel.java,v 1.1 2001/10/15 14:40:15 tkormann Exp $
*/
public class JPEGOptionPanel extends JPanel {
/**
* The gui resources file name
*/
public final static String RESOURCES =
"org.apache.batik.apps.svgbrowser.resources.GUI";
/**
* The resource bundle
*/
protected static ResourceBundle bundle;
/**
* The resource manager
*/
protected static ResourceManager resources;
static {
bundle = ResourceBundle.getBundle(RESOURCES, Locale.getDefault());
resources = new ResourceManager(bundle);
}
/**
* The jpeg encoding quality.
*/
protected JSlider quality;
/**
* Creates a new panel.
*/
public JPEGOptionPanel() {
super(new GridBagLayout());
ExtendedGridBagConstraints constraints =
new ExtendedGridBagConstraints();
constraints.insets = new Insets(5, 5, 5, 5);
constraints.weightx = 0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.NONE;
constraints.setGridBounds(0, 0, 1, 1);
add(new JLabel(resources.getString("JPEGOptionPanel.label")),
constraints);
quality = new JSlider();
quality.setMinimum(0);
quality.setMaximum(100);
quality.setMajorTickSpacing(10);
quality.setMinorTickSpacing(5);
quality.setPaintTicks(true);
quality.setPaintLabels(true);
quality.setBorder(BorderFactory.createEmptyBorder(0,0,10,0));
Hashtable labels = new Hashtable();
for (int i=0; i < 100; i+=10) {
labels.put(new Integer(i), new JLabel("0."+i/10));
}
labels.put(new Integer(100), new JLabel("1"));
quality.setLabelTable(labels);
Dimension dim = quality.getPreferredSize();
quality.setPreferredSize(new Dimension(350, dim.height));
constraints.weightx = 1.0;
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.setGridBounds(1, 0, 1, 1);
add(quality, constraints);
}
/**
* Returns the jpeg quality.
*/
public float getQuality() {
return quality.getValue()/100f;
}
public static void main(String [] args) {
System.out.println(showDialog(null));
}
/**
* Shows a dialog to choose the jpeg encoding quality and return the quality
* as a float.
*/
public static float showDialog(Component parent) {
Dialog dialog = new Dialog(parent);
dialog.pack();
dialog.show();
return dialog.getQuality();
}
/**
* This class is modal dialog to choose the jpeg encoding quality.
*/
public static class Dialog extends JDialog {
/**
* The 'ok' button.
*/
protected JButton ok;
/**
* The 'ok' button.
*/
protected JPEGOptionPanel panel;
public Dialog(Component parent) {
super(JOptionPane.getFrameForComponent(parent),
resources.getString("JPEGOptionPanel.dialog.title"));
setModal(true);
panel = new JPEGOptionPanel();
getContentPane().add(panel, BorderLayout.CENTER);
getContentPane().add(createButtonPanel(), BorderLayout.SOUTH);
}
/**
* Returns the jpeg quality.
*/
public float getQuality() {
return panel.getQuality();
}
/**
* Creates the button panel.
*/
protected JPanel createButtonPanel() {
JPanel panel = new JPanel(new FlowLayout());
ok = new JButton(resources.getString("OKButton.text"));
ok.addActionListener(new OKButtonAction());
panel.add(ok);
return panel;
}
/**
* The action associated to the 'ok' button.
*/
protected class OKButtonAction extends AbstractAction {
public void actionPerformed(ActionEvent evt) {
dispose();
}
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]