I don't know if I am doing something wrong again, I want an image to scale (resize or thumbnail) only if it's width and height dimensions are greater than 200/ 100. Here is the image I am using, which is 45 x 45 so theoretically there shouldn't be any conversions, I just need same image with a different name.
http://www.huffingtonpost.com/contribut ... adshot.jpg
Here is the command
convert headshot.jpg -resize 200x200 > -write headshot_f.jpg -thumbnail 100x100 > headshot_t.jpg
I get an error saying
convert: option requires an argument `-thumbnail'.
if I try only resize option
convert headshot.jpg -resize 200x200 > -write headshot_f.jpg
then image is converted into 200x200 dimensions??
Please help.
Thanks for all the help and support.
Image resizing :: another problem
-
- Posts: 1015
- Joined: 2005-03-21T21:16:57-07:00
Re: Image resizing :: another problem
There should not be a space between 200x200 and the > and it would be best to put quotes around it as well so the shell doesn't interpret it as I/O redirection
Try:
If you're using Linux, you might need to use single quotes instead of double quotes.
Pete
Try:
Code: Select all
convert headshot.jpg -resize "200x200>" -write headshot_f.jpg -thumbnail "100x100>" headshot_t.jpg
Pete
Sorry, my ISP shutdown all personal webspace so my MagickWand Examples in C is offline.
See my message in this topic for a link to a zip of all the files.
See my message in this topic for a link to a zip of all the files.
- fmw42
- Posts: 25562
- Joined: 2007-07-02T17:14:51-07:00
- Authentication code: 1152
- Location: Sunnyvale, California, USA
Re: Image resizing :: another problem
You have a space between 200x200 and >. Close the space. 200x200>sim123 wrote:I don't know if I am doing something wrong again, I want an image to scale (resize or thumbnail) only if it's width and height dimensions are greater than 200/ 100. Here is the image I am using, which is 45 x 45 so theoretically there shouldn't be any conversions, I just need same image with a different name.
http://www.huffingtonpost.com/contribut ... adshot.jpg
Here is the command
convert headshot.jpg -resize 200x200 > -write headshot_f.jpg -thumbnail 100x100 > headshot_t.jpg
I get an error saying
convert: option requires an argument `-thumbnail'.
if I try only resize option
convert headshot.jpg -resize 200x200 > -write headshot_f.jpg
then image is converted into 200x200 dimensions??
Please help.
Thanks for all the help and support.
You may also need an escape character if that does not solve it. Use \ on Unix and I think ^ on Windows as escape characters, e.g. 200x200\> But try first without.
Re: Image resizing :: another problem
Thank you so much for quick response, I appreciate your help.
-I tried putting quotes
and it worked but I am using Java (Runtime.exec) to execute these commands, MAC for development and Linux for deployment so I want more generic solution.
I tried removing spaces, it didn't work, then put escape sequence ("\") which is working fine, just wanted to know that this escape character will work same way on linux or I need another character for Linux?
Thanks for all the help and support.
-I tried putting quotes
Code: Select all
convert headshot.jpg -resize "200x200>" -write headshot_f.jpg -thumbnail "100x100>" headshot_t.jpg
I tried removing spaces, it didn't work, then put escape sequence ("\") which is working fine, just wanted to know that this escape character will work same way on linux or I need another character for Linux?
Thanks for all the help and support.
Re: Image resizing :: another problem
This escape sequence is not working with Runtime.exec, here is the code
And I am qurious to know why this is not happening if my image size is greater than 200x200 pixels?
If image is big then everything is working fine even with space in 200x200 > .
Thanks for all the help and support.
Code: Select all
private static void convert(String imageToResize, String thumbnail1ImageOut, String thumbnailImageOut) {
ArrayList<String> command = new ArrayList<String>(10);
try{
command.add("/usr/local/bin/convert");
command.add(imageToResize);
command.add("-resize");
command.add("200x200\\>");
command.add("-write");
command.add(thumbnail1ImageOut);
command.add("-thumbnail");
command.add("100x100\\>");
command.add(thumbnailImageOut);
}catch(Exception e){
e.printStackTrace();
}
exec((String[])command.toArray(new String[1]));
command = new ArrayList<String>(10);
}
private static boolean exec(String[] command) {
Process proc;
try {
System.out.println("command" + Arrays.asList(command));
proc = Runtime.getRuntime().exec(command);
} catch (Exception e) {
e.printStackTrace();
return false;
}
int exitStatus;
while (true) {
try {
exitStatus = proc.waitFor();
break;
} catch (java.lang.InterruptedException e) {
System.out.println("exception");
e.printStackTrace();
}
}
if (exitStatus != 0) {
System.out.println("Error executing command: " + exitStatus);
}
return (exitStatus == 0);
}
If image is big then everything is working fine even with space in 200x200 > .
Thanks for all the help and support.
Re: Image resizing :: another problem
I tried without escape sequence after removing space from "200x200 >", and its seems to be working
Sorry for the trouble, but just want to know, why this space character throws an error only if image size is less than 200x200, if image size is bigger then scaling works fine.
Thanks for your time, help and support.
Sorry for the trouble, but just want to know, why this space character throws an error only if image size is less than 200x200, if image size is bigger then scaling works fine.
Thanks for your time, help and support.
- fmw42
- Posts: 25562
- Joined: 2007-07-02T17:14:51-07:00
- Authentication code: 1152
- Location: Sunnyvale, California, USA
Re: Image resizing :: another problem
It is not the space that is the issue. It is whether your image is larger or smaller than 200 pixels. Read the section on -resize atsim123 wrote:I tried without escape sequence after removing space from "200x200 >", and its seems to be working
Sorry for the trouble, but just want to know, why this space character throws an error only if image size is less than 200x200, if image size is bigger then scaling works fine.
Thanks for your time, help and support.
http://www.imagemagick.org/script/comma ... php#resize
The > character implies that you only want to avoid processing if smaller than that size. If your image is larger then 200x200 without the > will be processed anyway as that is a valid option. I guess it is smart enough to ignore the > with the space as 200x200 by itself is valid. But if you use 200x200> and your image is smaller then that knows not to process it. But if you use 200x200 it will process it whether it is smaller or larger. Not sure I am making sense. But the bottom line is that any qualifier like >,^,%, etc must be part of the command and not separated from it by a space. It must all be one string of characters without spaces.
- anthony
- Posts: 8883
- Joined: 2004-05-31T19:27:03-07:00
- Authentication code: 8675308
- Location: Brisbane, Australia
Re: Image resizing :: another problem
Fred answered your first problem...
The spaces cause the shell (which is executing your command) to break up the argument into two separate arguments. It also see the '>' character as having special meaning.
Your second...
As such you command stopped at '-thumbnail' which it took to be the name of the output file!
You also probably had an error about 100x100 not being executable
with the redirections causing the shell to create two empty files.
Basically be a little more careful, and see if you can get a book on basic UNIX shell handling.
The spaces cause the shell (which is executing your command) to break up the argument into two separate arguments. It also see the '>' character as having special meaning.
Your second...
Is caused by you having a new line instead of space, or not putting a backslash before the line feed.sim123 wrote:I get an error saying
convert: option requires an argument `-thumbnail'.
As such you command stopped at '-thumbnail' which it took to be the name of the output file!
You also probably had an error about 100x100 not being executable
with the redirections causing the shell to create two empty files.
Basically be a little more careful, and see if you can get a book on basic UNIX shell handling.
Anthony Thyssen -- Webmaster for ImageMagick Example Pages
https://imagemagick.org/Usage/
https://imagemagick.org/Usage/
Re: Image resizing :: another problem
Thank you all for clarification. I would keep this in mind for future.