A community in which webmasters can ask for help with topics such as PHP coding , MySQL , IT jobs, web design, IT security.
Current location:homephp forumphp talk in 2008 yearProgrammatically combining images in PHP - page 1
User InfoPosts
Programmatically combining images in PHP#1
I'm a big fan of Yahoo's recommendations for speeding up websites. One of the recommendations is to combine images where possible to cut down on size and the number of requests. However, I've noticed that while it can be easy to use CSS sprites for layouts, other image uses aren't as easily combined. The primary example I'm thinking of is a blog or article list, where each blog or article also has an image associated with it. Those images can greatly affect load time and page size, especially if they aren't optimized. What I'm looking for, in concept or in practice, is a way to dynamically combine those images while running them through a loss-less compression using PHP.

A few added thoughts or concerns:

Combining the images and generating
a dynamic CSS stylesheet to position
the backgrounds of the images might
be one way to go about it, but I
also worry about accessibility and
semantics. As far as I understand,
CSS images should be used for layout
elements and the img tag (with the
alt attribute) should be used for
images that are meant to convey
information. I could set the image
as a background to a div element and
substitute a title attribute for the
alt attribute, but I'm unsure about
the accessibility and semantic
implications of doing so.
Might the GD library be a good
candidate for something like this?
Can you recommend other options?

posted date: 2008-12-17 08:30:00

Re: Programmatically combining images in PHP#2
I had made out the solution of this problem. click to view my topic...

hope that hepls.

posted date: 2008-12-17 08:30:01

Re: Programmatically combining images in PHP#3
I wouldn't go down this route if I were you. Sure, you may save a few bytes in protocol overhead by reducing the number of requests, but this would more-tha-likely end up being self-defeating.Imagine this scenario:A blog site, whose front page has 10 articles at a time. Each article has it's own image associated with it. To save a byte or two of transfer time, you programatically create a composite image of all 10 article images. You now have one of two problems.You must update the composite image each time a new post is made, as the most recent 10 images will have a modified set of content.You decide to create a new composite each request, on the fly.Obviously, #1 is preferable here, and would not be difficult to implement. However, what if a user searches for all posts tagged with the word "SQL"? You are unlikely to have a composite image of the first 10 results already created for this simple query, let alone a more complex one. Also, what happens if you want to update or delete an image? Once again you'd have to trigger the background creation of the composite.How about an RSS aggregator, like Google Reader? It wouldn't have the required logic to figure out which portion of a composite image it would need to display, and would probably display the full image. (I mention Google Reader because I very rarely visit blog sites directly, tending to trust to an RSS aggregation service like Reader)If it were me, I'd leave the single images alone. With modern connection speeds, the tradeoff between additional bandwidth overhead and on-server processing time is unlikely to win you and great gains.Having said that, if you decide to go down this route anyway, I'd say the GD library is an excellent place to start.

posted date: 2008-12-17 08:46:00

Re: Programmatically combining images in PHP#4
You'd almost certainly be better off reducing the filesize of the images in articles, than combine them. I'd agree that there might be accessibility issues with the method you suggest. Also, I suppose it depends on what you mean by "dynamic" - if you're thinking of combining those images and generating CSS for each page load, you might well find that that results in slower page load times for users with average connection speeds.As to your second point, GD could certainly handle that. A better use of GD for reducing page load times might be reducing the image quality of your article images to reduce filesizes, at article creation time, not at page load.

posted date: 2008-12-17 08:49:00

Re: Programmatically combining images in PHP#5
Excellent answer - your first bit in particular (the combination of images might be different for different page loads) hadn't occurred to me.

posted date: 2008-12-17 08:50:00

Re: Programmatically combining images in PHP#6
Very good points. I hadn't considered search results pages, etc. This question was sort of thinking out loud, but I was debating about whether or not any performance gain would be worth it when the image creation process has been taken into consideration. I may just settle for compression.

posted date: 2008-12-17 08:56:00

Re: Programmatically combining images in PHP#7
Good points. I was also thinking along those lines, but decided to see what other people thought as well.

posted date: 2008-12-17 08:58:00

select page: « 1 »
Copyright ©2008-2017 www.momige.com, all rights reserved.