Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.help > #1467

Re: Work around requested

From Knute Johnson <nospam@knutejohnson.com>
Newsgroups comp.lang.java.help
Subject Re: Work around requested
Date 2011-12-21 16:09 -0800
Organization A noiseless patient Spider
Message-ID <jctsfd$sk5$1@dont-email.me> (permalink)
References (4 earlier) <4decc207-ebaa-4d1c-9952-b73f18817f08@k10g2000yqk.googlegroups.com> <nospam-51D024.20134520122011@news.aioe.org> <1ba91a9f-d3e9-45df-8986-2de9165aeb93@q9g2000yqe.googlegroups.com> <jcrod7$2oc$2@dont-email.me> <ffcfe0ff-2022-4a3b-bdca-a3437ff44dfa@y18g2000yqy.googlegroups.com>

Show all headers | View raw


On 12/21/2011 1:58 PM, bH wrote:
>
> Hi Knute,
> I am in need of further help as to how and
> where to place what you wrote above.
> I have tried various locations within my work.
> Nothing seems to help to make the resulting
> thumbnail show any improvement.
> TIA
> bH

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.io.*;
import java.net.*;
import javax.imageio.*;
import javax.swing.*;

public class test extends JPanel implements ActionListener {
     private final JFrame frame;
     private final RenderingHints hints;
     private BufferedImage image,thumb1,thumb2;

     public test(JFrame frame) {
         this.frame = frame;

         hints = new RenderingHints(
          RenderingHints.KEY_INTERPOLATION,
          RenderingHints.VALUE_INTERPOLATION_BICUBIC);
         hints.add(new RenderingHints(
          RenderingHints.KEY_ALPHA_INTERPOLATION,
          RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY));
         hints.add(new RenderingHints(
          RenderingHints.KEY_COLOR_RENDERING,
          RenderingHints.VALUE_COLOR_RENDER_QUALITY));

         try {
             URL url =
              new URL("http://rabbitbrush.frazmtn.com/saturn.jpg");
             image = ImageIO.read(url);
             setPreferredSize(
              new Dimension(image.getWidth(),image.getHeight()));

             thumb1 = scaleImage(image,.25,.25,
              AffineTransformOp.TYPE_BICUBIC);
             thumb2 = scaleImage(image,.25,.25,hints);

             // if the image needs to have the colorspace converted
             // image = convertToCompatible(image);
         } catch (MalformedURLException murle) {
             JOptionPane.showMessageDialog(this,murle);
         } catch (IOException ioe) {
             JOptionPane.showMessageDialog(this,ioe);
         }
     }

     public void actionPerformed(ActionEvent ae) {
         String ac = ae.getActionCommand();
         if (ac.equals("url")) {
             String input =
              JOptionPane.showInputDialog(this,"Enter Image URL");
             if (!input.equals("")) {
                 try {
                     URL url = new URL(input);
                     image = ImageIO.read(url);
                     setPreferredSize(
                      new Dimension(image.getWidth(),image.getHeight()));

                     thumb1 = scaleImage(image,.25,.25,
                      AffineTransformOp.TYPE_BICUBIC);
                     thumb2 = scaleImage(image,.25,.25,hints);

                     setPreferredSize(new Dimension(image.getWidth(),
                      image.getHeight()));
                     frame.pack();
                     repaint();
                 } catch (MalformedURLException murle) {
                     JOptionPane.showMessageDialog(this,murle);
                 } catch (IOException ioe) {
                     JOptionPane.showMessageDialog(this,ioe);
                 }
             }
         }
     }

     public void paintComponent(Graphics g) {
         g.drawImage(image,0,0,null);
         g.drawImage(thumb1,0,0,null);
         g.drawImage(thumb2,getWidth()-thumb2.getWidth(),0,null);
     }

     public static BufferedImage scaleImage(BufferedImage src, double sx,
      double sy, int interpolationType) {
         AffineTransformOp op = new AffineTransformOp(
          AffineTransform.getScaleInstance(sx,sy),interpolationType);
         return op.filter(src,null);
     }

     public static BufferedImage scaleImage(BufferedImage src, double sx,
      double sy, RenderingHints hints) {
         AffineTransformOp op = new AffineTransformOp(
          AffineTransform.getScaleInstance(sx,sy),hints);
         return op.filter(src,null);
     }

     public static BufferedImage convertToCompatible(BufferedImage image) {
         GraphicsEnvironment ge =
          GraphicsEnvironment.getLocalGraphicsEnvironment();
         GraphicsDevice gd = ge.getDefaultScreenDevice();
         GraphicsConfiguration gc = gd.getDefaultConfiguration();

         BufferedImage compatible = 
gc.createCompatibleImage(image.getWidth(),
          image.getHeight());

         if (compatible.getType() == image.getType())
             return image;

         ColorConvertOp op = new ColorConvertOp(
          image.getColorModel().getColorSpace(),
          compatible.getColorModel().getColorSpace(),null);

         return op.filter(image,compatible);
     }

     public static void main(String[] args) {
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 JFrame f = new JFrame();
                 f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

                 test t = new test(f);

                 JMenuBar mb = new JMenuBar();
                 f.setJMenuBar(mb);
                 JMenu file = new JMenu("file");
                 mb.add(file);
                 JMenuItem url = new JMenuItem("url");
                 url.addActionListener(t);
                 file.add(url);

                 f.add(t);
                 f.pack();
                 f.setVisible(true);
             }
         });
     }
}

-- 

Knute Johnson

Back to comp.lang.java.help | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Work around requested bH <bherbst65@hotmail.com> - 2011-12-17 19:03 -0800
  Re: Work around requested Lew <lewbloch@gmail.com> - 2011-12-17 19:19 -0800
    Re: Work around requested "John B. Matthews" <nospam@nospam.invalid> - 2011-12-18 01:36 -0500
      Re: Work around requested Lew <lewbloch@gmail.com> - 2011-12-17 23:39 -0800
      Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-18 21:01 -0800
        Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-20 15:46 -0800
          Re: Work around requested Knute Johnson <nospam@knutejohnson.com> - 2011-12-20 16:53 -0800
            Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-20 17:02 -0800
              Re: Work around requested Knute Johnson <nospam@knutejohnson.com> - 2011-12-20 20:43 -0800
          Re: Work around requested "John B. Matthews" <nospam@nospam.invalid> - 2011-12-20 20:13 -0500
            Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-20 17:33 -0800
              Re: Work around requested Knute Johnson <nospam@knutejohnson.com> - 2011-12-20 20:47 -0800
                Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-21 13:58 -0800
                Re: Work around requested Knute Johnson <nospam@knutejohnson.com> - 2011-12-21 16:09 -0800
                Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-21 18:58 -0800
                Re: Work around requested Knute Johnson <nospam@knutejohnson.com> - 2011-12-21 19:09 -0800
                Re: Work around requested bH <bherbst65@hotmail.com> - 2011-12-21 18:50 -0800
  Re: Work around requested Roedy Green <see_website@mindprod.com.invalid> - 2011-12-18 12:51 -0800
    Re: Work around requested Joerg Meier <joergmmeier@arcor.de> - 2011-12-24 02:18 +0100

csiph-web