2014-07-31
Art for today brought to you by Dazhbug! You may check out a higher-resolution version of this strip over on the GoComics mirror!
Art for today brought to you by Dazhbug! You may check out a higher-resolution version of this strip over on the GoComics mirror!
I have to say that this was absolutely my favorite comic of this week, and I giggled a lot while drawing it.
Man, I don’t want to sound bad or anything, but it’s getting to the point where I can barely read the comic…. And if I zoom in it goes blurry. Could you start making them about a third bigger? It would really really help me to read the text and see what’s going on!
Hadashi, unfortunately here on the main site the output is fixed-width, and this is probably a poor time for me to be tinkering with the fundamentals of the site. The good news is, click-to-zoom functionality is now in place for the mirror site on GoComics: Click here! That should help.
well, could Dahzbug enlarge the font size?
Dahz lettered by hand.
You could always just provide the higher-resolution images and use a width=”…” attribute to let the browser scale it down to fit the layout – then if someone zooms in on the website it’ll stay nice and crisp. (And those of us with Retina displays will see it nice and crisp anyway.)
Although I the layout on this site looks like it should be fine with a wider image anyway.
I also see that Lightbox is enabled on this site, so you could just wrap the image in a link to the full-size image with a data-lightbox=”comic” attribute, and clicking on it will zoom it in all nice.
Oh, in this case, though, mod_pagespeed will get in the way of doing the width=”…” correctly, because it “helpfully” resizes images to the target resolution, ignoring things like high-dpi screens and scaling factors and so on. It also tends to recompress images pretty badly.
There are ways around that but they’re really aggravating to implement correctly.
Yeah, you can see issues related to scanning hand-lettered comics at low resolution. I bet this lettering looks very nice at full res, but in the pixelated version at skin-horse.com, the hole in the ‘a’ of “That” in the caption above ends up as 2 pixels wide by 1 pixel high. The very high ascenders compared to the x-height is part of the issue.
Font hinting means realigning letters’ boundaries along pixel edges for maximum legibility at low resolution, so, for example, you get a crisp black line one pixel wide instead of a muddy vertical line of two gray pixels next to each other. This improves legibility of text in low-res images on-screen. Font hinting relies on knowing the resolution of the final image — you can’t just scan an image at full resolution and then resize the image using a basic algorithm and get font hints to work — and entering the text electronically.
I guess that an image scan or image resize algorithm could perform its own version of font hinting, to improve the legibility of even hand-lettered text at low resolution. Besides moving edges to align with pixels, the algorithm could also recognize when a line is nearly vertical, horizontal, or 45 degrees diagonal and realign it to fit exactly. (An algorithm could even perform OCR to identify the actual words and then re-letter the image, with hints, at the new resolution with a known font similar to the original one.) Unfortunately I don’t know what, if any, image resizing or scanning tools might do those kinds of tricks (if anyone else does, I’d love to know!), but the one used here clearly does not.
That gets to another problem — font hints work well on writing that includes many straight lines, but not so well for italic or cursive handwritten script that mostly involves curves and diagonal lines at funny angles, as here.
Obviously the applied experts on this problem would be people who actually have extensive experience doing webcomic lettering. I’m sure they could be much more helpful.
Well, I didn’t scan any of these; it’s all done digitally. However, working at super high res and shrinking everything starts to lead to similar issues.
Ah, thanks for the clarification. And I agree with your second sentence. The art looks nice even at low res, though!*
Does your drawing tool allow vector layers (such as scalable fonts) to retain their original form while being layered with pixelated ones? Of course, that only helps if the font designer adds the hints or bitmaps to make the font work at low res in the first place, not to mention that it doesn’t work unless you’re using a font in the first place. In any case, this is going beyond my knowledge level as a programmer who has done a little 2D graphics.
* Technically, low resolution is 40x40x16, while high resolution is 280x160x2. (I don’t know how you made an image bigger than 40×40 pixels that is in color. It must be magic.) Most games don’t actually use the rightmost 16 columns of pixels in hi-res, though, because limiting x values to 0..255 allows them to be stored in one byte. So columns 256 through 279 are filled with a static decorative banner.
(Posted from my Apple ][.)
Maybe My vision is corrected really well, but I haven’t had any difficulty reading the text. I read today’s on a phone and saw everything fine, including the loop in the ‘a’ in that.
You can’t automatically do “font hinting” when downsampling from an image; font hints rely on knowing the vectorized shape of the letters and where they are on the screen and so on.
I once developed an algorithm that maintains contrast when downsampling, but while it handles text pretty well it tends to screw up a lot of other things, so it’s not really worth it.
Re-lettering from OCR is a terrible, terrible idea, because OCR is inaccurate and matching the font metrics is only going to work well if you find a font that’s already pretty much identical to what was being hand-lettered in the first place, and the spacing will be way too jittery and so on.
Really the best approach is to use larger (or at least higher-resolution) images on the site. 😛
1. Recognizing and adjusting vertical, horizontal, and diagonal strokes within apparent text regions and making adjustments analogous to those made for font hinting does not require knowing the font. In fact, automatic font hinting already exists — it normally works directly from the vector description, but you can turn a reasonably clean and hi-res bitmap back into a vector.
(I did some crude vectorization of bitmapped fonts when I was a kid — it basically worked…)
2. If you found a better way to maintain text legibility while downsampling, but it is harmful elsewhere, then if you use a heuristic to determine what is or isn’t text, then by your own account you ought to end up with superior results.
3. OCR can be reliable if you start with decent resolution normal fonts, as opposed to, say, lo-res scans of blotchy old handwritten documents. OCR is already accurate enough that captchas are pretty close to illegible to keep machines from solving them, and for this particular problem, you don’t need blazing speed. As for correcting the spacing afterwards, that is already an issue with font hinting, yet nobody says font hints are a bad idea. Heck, old fixed-width font printers, when justifying text on both sides, had to justify text by inserting entire extra space characters between words, so people can live with the spacing between words being tweaked by a pixel or two. Though if the input image is really high quality to begin with, approach #1 makes the OCR approach superflous anyhow.
If the background is complex or patterned, if the image is low-res or blotchy, if the font is peculiar or cursive, then all of that gets harder or near-impossible. But there is a reasonable set of circumstances where none of those problems apply.
It would be nice to have higher-res images here, but that specific solution won’t solve the more general problem. Anyway, it’s an interesting discussion.
Ya know, George Herriman never had these kinds of problems…
(TUNE: “Folsom Prison Blues”, Johnny Cash)
I hear my songs a-playin’,
They’re getting lots of air!
But all my songs were stolen by
A refugee from “Hair”!
Now I’m in fresh-water prison,
Yeah, that’s where I swim …
Because of Mr. Big, I tried to
Pop a cap in him!
I had to steal an auto,
That made it kind of hard!
I couldn’t use a rental;
Don’t have a credit card!
So they sent me up the river,
Where my spirits droop …
It’s really hard to do a drive-by
In a Prius coupe!
I know it’s quite ironic,
It’s just my own damn fault!
I’m in fresh-water prison,
I’m guilty of as-sault!
That Sixties-era hippie
That I tried to slay …
Is an endangered species guarded
By the E.P.A.!
One way you might make it even better, Ed: drop the N from “damn.”
If it comes down to a fight between the EPA, RIAA, and Greenpeace, my money is on the RIAA to slay both of them.
I think Hugey P has too much draft to get up the river.
They’ll find one with a good lock system.
I was right! Most people are hearing whale song, completely unaware that the whale sing in question is hip hop.
Wouldn’t most people hear hip hop music, not seeing an actual whale doing the singing? They probably think the title is ironic or something: actual whale songs usually don’t get a lot of “mainstream air time.” I think it’s just him…
(Most people aren’t in danger of an existential crisis if they find that their birdsong recordings have been taped over with rock music, although there might be some risk of a Punching Someone In the Nose crisis).
Yeah, I think only the hippie guy is hearing whale song. Well technically it’s all whale songs no matter what you hear, but you know what I mean.
A saltwater whale would never survive up the river…
Yep, kind of the point. Neo-environmentalist pseudo-hippies can be scary.
What does neo-environmentalist even mean?
My guess would be the kind of “environmentalist” that lived their whole life in a city. They don’t know a damn thing about ecology but oh boy, do they have opinions on it.
Which is admittedly different from the definition I got by googling it, but that definition doesn’t fit so well in context.
Random thought on the evolution of “reality blindness.”
Once there were Gods. They were not life as we know it, but quantum-indeterminate beings, which became much more “real” when anyone perceived them: and while normally human beings simply blended into the background of atoms and molecules, when they _perceived_ the Gods, they became rather noticeable, in turn, to the Gods.
The Gods are now gone, or perhaps sleeping or just currently imperceptible. But for a long time, the odds of surviving long enough to breed were in favor of those who were good at ignoring the Gods, or couldn’t see them at all…
It took me nearly all week to realize that those are sunglasses and not headphones. I feel kind of dumb right now.
The small font is all part of Jeff’s sinister plan to get you all to buy bigger computers. I’m not sure why he’s doing that, but I’m sure it’s evil.
No prison can hold Hugey P!
Literally. He’s too big for any standard-sized cells. They might try putting him into SeaWorld, but I doubt he can fit into any of their pools either.