Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #34407
| From | Martin Gregorie <martin@address-in-sig.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Bash script with Image Magick to a Java program |
| Date | 2016-05-27 18:02 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <nia246$9g1$1@dont-email.me> (permalink) |
| References | (1 earlier) <ni8a27$t0j$1@gioia.aioe.org> <8760tz50qf.fsf@Equus.decebal.nl> <ni95r3$19j$1@dont-email.me> <871t4n4u12.fsf@Equus.decebal.nl> <nia17p$8ju$1@dont-email.me> |
On Fri, 27 May 2016 18:51:16 +0100, Duncan Idaho wrote:
> On 27/05/16 12:31, Cecil Westerhof wrote:
>> On Friday 27 May 2016 12:00 CEST, Martin Gregorie wrote:
>>
>>> On Fri, 27 May 2016 11:06:16 +0200, Cecil Westerhof wrote:
>>>
>>>> I evaluate things. Maybe I start with the standard library and as my
>>>> program evolves I switch. At the moment I know nothing about
>>>> graphical functionality in Java.
>>>>
>>> Whether the standard image classes in java.awt.image will do the job
>>> for you depends on the image source. I use it to produce thumbnails of
>>> JPG images but find that it can't correctly handle some JPGs from some
>>> sources. These are always B&W images, which result in a thumbnail of
>>> the correct requested size but distorted by being broken into vertical
>>> stripes separated by white 'bars' and, typically with the right-hand
>>> 1/3 or so of the original image not appearing in the thumbnail
>>> version.
>>
>> Well, I only work with color JPG files. ;-)
>>
>>
>>> This seems to be a deficiency in the Java library since the GIMP image
>>> manipulation program doesn't show this problem. I haven't tried Image
>>> Magik on these images so don't know what it would do.
>>>
>>> Starting with the standard class library and only moving on if you
>>> find things it can't do sounds like a good plot.
>>>
>>> My only other comment is that the documentation for the standard image
>>> library does rather assume that you are already up to speed on image
>>> manipulation and so you know what affine transforms, etc. are and why
>>> you should use each type of operation on an image and in what order.
>>> This isn't covered in the Java tutorials and there are no references
>>> to this sort of basic information.
>
> Just FYI
>
> I use the following Java libraries
>
> java.awt.Graphics;
> java.awt.Image;
> java.awt.image.BufferedImage;
> javax.imageio.ImageIO;
> javax.swing.ImageIcon;
>
> plus some standard libraries.
>
> along with the
>
> org.apache.commons.fileupload
>
> libraries
>
> To upload, scale and generate thumbnails and large images in jpg format
> for use in my home brewed Content Management System My source images are
> cropped square to a random convenient size.
>
> I have scaled tens of thousands of images and generated tens of
> thousands of thumbnails over the last five or so years with not a single
> problem
>
> The code hasn't been touched for many years, I can't even remember
> writing most of it :-)
> it's used almost every day.
>
> I'll let you have the code if you like.
> It could do with refactoring I expect, like I say it hasn't been touched
> for years.
>
> <snip>
>
> Idaho
I'm using:
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageFilter;
import java.awt.image.BufferedImageOp;
import java.awt.image.RescaleOp;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import javax.imageio.ImageIO;
import org.gregorie.environ.ReportError;
... but obviously not all of them are being used to resize an image.
Here's the code:
public void resizeTo(int width)
{
re.trace(2, "resizeTo(" + width + ") started");
int w = im.getWidth();
int h = im.getHeight();
double scale = width * 1.0 / w;
if (noExpand && scale >= 1.0)
{
wouldExpand = true;
re.trace(2, "Image is smaller than " + width +
" wide: original size will be output");
}
else
{
wouldExpand = false;
AffineTransform at = new AffineTransform();
at.scale(scale, scale);
AffineTransformOp op = new AffineTransformOp(at,
AffineTransformOp.TYPE_BICUBIC);
Double nw = new Double(w * scale);
Double nh = new Double(h * scale);
re.trace(2, "scale=" + scale +
" new size w=" + nw.intValue() +
" h=" + nh.intValue());
re.trace(3, "Source buffer details: " + im);
om = new BufferedImage(nw.intValue(),
nh.intValue(),
BufferedImage.TYPE_3BYTE_BGR);
op.filter(im, om);
}
re.trace(1, "resizeTo(" + width + ") done");
}
The re.trace() calls are to my private traceing/debugging class
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 00:42 +0200
Re: Bash script with Image Magick to a Java program Jerry Stuckle <jstucklex@attglobal.net> - 2016-05-26 20:45 -0400
Re: Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 11:01 +0200
Re: Bash script with Image Magick to a Java program Arne Vajhøj <arne@vajhoej.dk> - 2016-05-26 22:06 -0400
Re: Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 11:06 +0200
Re: Bash script with Image Magick to a Java program Martin Gregorie <martin@address-in-sig.invalid> - 2016-05-27 10:00 +0000
Re: Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 13:31 +0200
Re: Bash script with Image Magick to a Java program Eric Douglas <e.d.programmer@gmail.com> - 2016-05-27 05:15 -0700
Re: Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 15:18 +0200
Re: Bash script with Image Magick to a Java program Duncan Idaho <duncan@dunenoemail.com> - 2016-05-27 18:51 +0100
Re: Bash script with Image Magick to a Java program Martin Gregorie <martin@address-in-sig.invalid> - 2016-05-27 18:02 +0000
Re: Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 23:23 +0200
Re: Bash script with Image Magick to a Java program Cecil Westerhof <Cecil@decebal.nl> - 2016-05-27 23:18 +0200
Re: Bash script with Image Magick to a Java program Duncan Idaho <duncan@dunenoemail.com> - 2016-05-28 08:03 +0100
Re: Bash script with Image Magick to a Java program Arne Vajhøj <arne@vajhoej.dk> - 2016-05-27 17:59 -0400
Re: Bash script with Image Magick to a Java program Brixomatic <brixomatic@yahoo.com> - 2016-05-29 17:28 +0200
Re: Bash script with Image Magick to a Java program Eric Douglas <e.d.programmer@gmail.com> - 2016-06-14 10:25 -0700
csiph-web