110 lines
9.6 KiB
Plaintext
110 lines
9.6 KiB
Plaintext
|
|
Episode: 2730
|
||
|
|
Title: HPR2730: Resizing images for vcard on Android
|
||
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2730/hpr2730.mp3
|
||
|
|
Transcribed: 2025-10-19 15:49:40
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
This is HPR episode 2,730 entitled, Recycling Images for V-Card on Android.
|
||
|
|
It is hosted by Ken Fallon and is about 11 minutes long, and carries an explicit flag.
|
||
|
|
The summary is, automating the steps needed to get images formatted for V-Card important on Android phones.
|
||
|
|
This episode of HBR is brought to you by AnanasThost.com.
|
||
|
|
Get 15% discount on all shared hosting with the offer code HBR15, that's HBR15.
|
||
|
|
Better web hosting that's honest and fair at AnanasThost.com.
|
||
|
|
Hi everybody, my name is Ken Fallon and you're listening to another exciting episode of Hacker Public Radio.
|
||
|
|
I want to maintain a set of V-Cards that I can share with the kids, contact information for family and relatives.
|
||
|
|
With V-Cards though, when I transferred them over to the various different phones, some of them copied and some of them didn't.
|
||
|
|
And I was, quote, bit my head against a wall trying to figure out what the problem was.
|
||
|
|
Common denominator was that all ones that transferred did not, the ones that transferred did not have photos, although there were some that did have photos.
|
||
|
|
And when I compared, I eventually narrowed it down to the photos.
|
||
|
|
And when I compared, I couldn't see any differences in size of the photo images, the format of the images, etc.
|
||
|
|
And then a bit of searching identified that it all came down to the aspect ratio.
|
||
|
|
The aspect ratio needs to be one to one.
|
||
|
|
Not only that, it needs to be either 96 by 96 for the first version of Android, ICS, 4.0, 256 by 256.
|
||
|
|
And then in 4.1, it was 720 by 720.
|
||
|
|
So when I tried various ones of these, the 96 squared and the 256 squared worked fine, but the 720 one didn't work on all the phones.
|
||
|
|
So and also the image quality wasn't that much better between the two.
|
||
|
|
The image quality between the 96 and the 256 one was significantly better, but not so bad that you still couldn't transfer the files.
|
||
|
|
So I decided to choose 256 by 256 as the standard format for all the images.
|
||
|
|
Now, I have about 30 people in the immediate family on both sides of my wife's and my own family.
|
||
|
|
That I wanted to have contact information for, and I didn't want to be dragging all of these into color paint and start editing them there.
|
||
|
|
So the steps if you were to do it in color paint are the Gimp or other photo manipulating software would be to import the image.
|
||
|
|
Then you select the image and then do a scale, smooth scaling, maintaining the aspect ratio.
|
||
|
|
And you would need to pick 256 yourself, 256.
|
||
|
|
So as they whichever is greater, the height of the width set that to 256 and then the other one will scale down accordingly.
|
||
|
|
Okay, so then you will have an image that's either 256 wide and something less tall or 256 tall and something less wide.
|
||
|
|
Depending on whether it's a portrait or landscape of the person, you probably portrait more than likely.
|
||
|
|
Then you will go increase scale canvas, so increase the canvas size and set that so that it doesn't respect the aspect ratio.
|
||
|
|
So you're not stretching or squashing the photos of the people and set the color to the background color to white and then center the image in the center.
|
||
|
|
That is a lot of steps for more than five photos or reckon.
|
||
|
|
So it came into some sort of tool on the command line that would make it possible to automate all of these.
|
||
|
|
So I also want to do it for all the photos that have collected from people who work and stuff as well.
|
||
|
|
Because it's handed a face, gives me a lot more recognition than just somebody's email address or names.
|
||
|
|
So command line tools from manipulating images on Linux, you're immediately thinking image magic, I'm guessing.
|
||
|
|
Well, I will prefer to use graphics magic and everything I do here with image magic is available in graphics magic and vice versa.
|
||
|
|
So if you wish to use image magic, that's absolutely fine.
|
||
|
|
You'll find graphics magic is probably already installed on your system as it tends to be and it's I believe more maintained.
|
||
|
|
There is a good episode on floss weekly about graphics magic, so you can check that out there.
|
||
|
|
So the things that we need the commands to do all of this are in the show notes for this.
|
||
|
|
So I'm not going to bore you too much about it and I've done a worked example of from a photo of Linus Torvals, which I work through the various different steps on what the various different options will do.
|
||
|
|
And that's in the show notes there.
|
||
|
|
The one tool on image magic is called identify and then you can put the name of a photo.
|
||
|
|
So identify Linus Torvals and .JPEG and that will give you some basic information about the tool in graphics magic.
|
||
|
|
All the commands that you would normally have in image magic are behind the tool itself.
|
||
|
|
So gm space identify Linus Torvals.JPEG is the same as the equivalent to the image magic web.
|
||
|
|
I actually find that tidier because everything's within the one.
|
||
|
|
So some of the things that when resizing an image, you might assume that you would use the simple dash size 256 by 256.
|
||
|
|
That one is actually used when you're creating an image from scratch.
|
||
|
|
So when you want to programmatically create an image like or modify a canvas or something.
|
||
|
|
So if you just use that on a larger image like a photo quality one, what ended up happening was that I ended up with an image that was the maintain the aspect ratio,
|
||
|
|
it was actually 366 by 509 nowhere near the 256 by 256.
|
||
|
|
But that said, when I was reading about this apparently that size thing is used as a hint when doing the other manipulations that I will be using later on.
|
||
|
|
So I left it in to be honest I didn't see a massive difference when I didn't use it but I left it in better safe than sorry.
|
||
|
|
Now some of the things that you need to do the order of which you put them on the command line for graphics magic is important.
|
||
|
|
The last one specifically needs to be the last one I'm going to discuss will be the first one that I've got.
|
||
|
|
I'll go through the options and then at the end I'll give you the correct order.
|
||
|
|
So the command you actually want to use to scale an image the way that I want is actually resize.
|
||
|
|
So resize 256 256.
|
||
|
|
So what that does is it will resize it down so that if either the whichever the biggest is the width or the height will be under 256.
|
||
|
|
And once I did that with the image is scaled it down to 184 by 256.
|
||
|
|
So the width is 184 by 256.
|
||
|
|
So that's one to one.
|
||
|
|
Now the next command I used was the extent command EXTNT.
|
||
|
|
And what that does is will take the image and it'll increase the canvas to 256 256 which is exactly what I want.
|
||
|
|
But because the height hasn't changed what it ended up doing was adding a little bit of white space on the right
|
||
|
|
side of the image. So if you imagine the big cropped image on one side and then you have this big white border on the other side.
|
||
|
|
So in order to get around that you can use the gravity command.
|
||
|
|
So you have north, south, east, west, northwest.
|
||
|
|
And then the one that I'm looking for is center.
|
||
|
|
And what that does is it will position the image right bang in the center of the canvas and increase the canvas around this proportionally.
|
||
|
|
So that left two white borders on either side.
|
||
|
|
So that gives a nice balanced look when somebody calls you on the phone.
|
||
|
|
The image comes up and you don't really notice the two white bands.
|
||
|
|
Difficult enough in the show notes to see it.
|
||
|
|
And I'm interested to see how Dave is going to get around this when he's uploading it to archive.org because it's got a border on it.
|
||
|
|
So white border.
|
||
|
|
I put a HTML border around the image so that you can see.
|
||
|
|
So you can see this padding because you're not going to see it if the generic white border white canvas and white border.
|
||
|
|
So the entire command is GM convert space gravity center.
|
||
|
|
So that one needs to be there first space dash size 256 256 don't even know if you need that.
|
||
|
|
Space the source image in this case linus torvals.jpg space and now they the stuff that we want to do dash resize 256 256 dash extent 256 dash 256.
|
||
|
|
And then I also put in plus profile space double called asterix double called space linus torvals.
|
||
|
|
underscore 256 x 256.jpg.
|
||
|
|
And that will produce the image the last profile thing what it does is it strips any profile information that's in the picture and just gives you.
|
||
|
|
Just tells the computer not to do any messing with it profile information allows you to give hints to the screen to just to say what the color.
|
||
|
|
Information is going to be like to get color record pictures, but as this is going to be in a v card.
|
||
|
|
I want as little information in there as possible.
|
||
|
|
So what you can do I also put it in a a little script in the show notes for image in asterix jpg do for size in 96 by 96 256 by 256.
|
||
|
|
720 by 220 do Jim convert all the rest of that replacing size and image and that basically will give you.
|
||
|
|
If you put it into directory to create three thumbnail files of any image that you happen to have in there and you can see which ones work best for you.
|
||
|
|
Okay, that's pretty much that.
|
||
|
|
Thank you for listening. I hope this was of some use to you.
|
||
|
|
And tune in tomorrow for another exciting episode of hacker public radio.
|
||
|
|
You've been listening to hacker public radio at hackerpublicradio.org.
|
||
|
|
We are a community podcast network that releases shows every weekday Monday through Friday.
|
||
|
|
Today's show, like all our shows, was contributed by an HPR listener like yourself.
|
||
|
|
If you ever thought of recording a podcast then click on our contribute link to find out how easy it really is.
|
||
|
|
HackerPublicRadio was founded by the digital dog pound and the infonomicum computer club and is part of the binary revolution at binrev.com.
|
||
|
|
If you have comments on today's show, please email the host directly, leave a comment on the website or record a follow-up episode yourself.
|
||
|
|
Unless otherwise stated, today's show is released under creative comments, attribution, share a life, 3.0 license.
|