View Full Version : Scale images in posts
GrAfiX
12-04-2001, 10:00 PM
This hack is to set Images to a fixed width in your forums... You can set the width to what ever you want...
Works very well on static boards...
File to edit: /forums/admin/function.php
Noteworthy that, if the image is a remote URL (eg http://vbulletin.com/logo.gif) , this hack will work ONLY if you have PHP 4.0.5 and up. If you have lower version, you will get an error.
Another recommendation: supress error reporting for this function. Otherwise, you will get at the top of threads lines like "Warning: getimagesize: Unable to open blah blah"
To do this, change
$size = GetImageSize("$thispic1[0]");
to
$size = @GetImageSize("$thispic1[0]");
This hack didn't do anything at all. No error, nothin.
Robert Basil
12-06-2001, 03:03 AM
[QUOTE]Originally posted by qwaz
This hack didn't do anything at all. No error, nothin.
ok, I looked at the code and it won't work, or will work erraticly.
GraAfix, you are essentially checking only the image size of the first img posted. If there are two or more images, the 2nd image on will not be checked.
This is because you are running explode and then a second explode only on the first object.
So for example, let say this is the text:
blah blah blah
[img ]http://url.to/pic.1[ /img]
blah blah blah
[img ]http://url.to/pic.2[ /img]
blah blah blah
[img ]http://url.to/pic.3[ /img]
When we pass it through your code, this is what happens:
$thispic=explode('',$bbcode);, we get the following array values:
$thispic[0] = blah blah blah
$thispic[1] = http://url.to/pic.1[ /img] blah blah blah
$thispic[2] = http://url.to/pic.2[ /img] blah blah blah
$thispic[3] = http://url.to/pic.3[ /img]
What your code then does, is run explode ONLY on $thispic[1] -- ie, on the first image only:
$thispic1=explode('',$thispic[1]);, we get the following array values:
$thispic1[0] = http://url.to/pic.1
$thispic1[1] = blah blah blah
At that point you are checking the image size for $thispic1 -- meaning, for image #1.
Now, not only are you not check the size for the REST of the pictures, but also the size of the FIRST image will dictate how the REST of the images will be displayed:
$size = GetImageSize("$thispic1[0]");
if ($size[0] > 400)
If the first image is smaller than 400, then ALL pictures in the post will be displayed in their FULL size.
If the first image is bigger than 400, then ALL pictures in the post will be displayed with width=400, even if they are smaller than 400!
And, if the script cannot get the size for the first image (broken link, php version smaller than 4.0.5) then ALL images in the post will be displayed in full size.
Hence, this hack is now production. I suggest FireFly moves it to the Beta forum, where we can continue developing it and overcoming all the limitations.
I've finished all my tests and my bottom line is: DON'T use getimagesize at all. In other words, don't use this hack or any variant similar to it.
Reasoning can be found at http://vbulletin.com/forum/showthread.php?s=&postid=216762#post216762
GrAfiX
12-06-2001, 12:06 PM
This hack works just fine... here are a bunch of pics larger than 400 and the thread is showing just fine... with the code I posted...
http://www.thetoybox.net/forums/showthread.php?s=&threadid=80
I've had no problems with the code... I've been running it since vb 1.15
Everytime there is an IMG tag it parses that routine and makes the image smaller... even in the Sig....
This is what $picture1[0] echo's all in one line...
http://www.thetoybox.net/gallery/albums/album01/ajb.sized.jpg
http://www.thetoybox.net/gallery/albums/album01/acf.thumb.jpg
http://www.thetoybox.net/gallery/albums/album01/ajb.thumb.jpg
http://www.angelfire.com/ak5/myquadzone/yamahasymbol.art
http://www.thetoybox.net/gallery/albums/album01/ahv.thumb.jpg
Now if I throw an <BR> in that routine it puts a break after every picture therefore is parsing each image seperatly..
this is what I put...
$thispic1=explode('[/img]',$thispic[1]);
echo$thispic1[0];
echo "<BR>";
if ($thispic1[0] != ""){
Therefore it's doing a imgsize on every pic seperatly...
GrAfiX
12-06-2001, 01:21 PM
I see the problem.. It does parse each post seperatly... but if you have more than 1 image in a post it will only take the first one... I'll fix that today... Most people don't post a bunch of pics and if they do there the same size...
I'm working on it..
Looking forward to it, maybe we could even make it so you click on the image to open it in another window in full size. Get it to work with fireflys hack when clicking image attachments and you'd be set.
VirtueTech
12-08-2001, 04:37 PM
Does this hack resmaple the image when it scales it to the new width?
GrAfiX
12-09-2001, 04:23 PM
No because the images that it's viewing aren't hosted on the site so they can't be scaled permanently...
Gutspiller
01-12-2002, 10:46 PM
OK I installed this hack and I like it. Is what I found out is that it only resizes images in the image tag. IT DOESN'T resize images that have been attached to a post. Is there anyway to fix this? It would be great if it resized images that were attached to the posts as well.
Also, I don't think it would be hard, but how would I make it so that if it did resize the image, that the actual image was a hyper link to the full image size? Even if it was just a white page with the picture on it that would be OK.
Could somebody help me with these 2 things?
Any help would be greatly appreciated.
Thanks!
LanciaStratos
01-14-2002, 01:32 AM
It looks to me like this could be done with a template modification. I'm not sure which one, though. :confused:
GrAfiX
01-14-2002, 01:08 PM
You could but then would make even images smaller in size big and distorted...
LanciaStratos
01-14-2002, 07:11 PM
[QUOTE]Originally posted by GrAfiX
You could but then would make even images smaller in size big and distorted...
Gutspiller
01-16-2002, 06:02 PM
[QUOTE]Originally posted by Gutspiller
OK I installed this hack and I like it. Is what I found out is that it only resizes images in the image tag. IT DOESN'T resize images that have been attached to a post. Is there anyway to fix this? It would be great if it resized images that were attached to the posts as well.
Also, I don't think it would be hard, but how would I make it so that if it did resize the image, that the actual image was a hyper link to the full image size? Even if it was just a white page with the picture on it that would be OK.
Could somebody help me with these 2 things?
Any help would be greatly appreciated.
Thanks!
Steve123
01-24-2003, 12:09 PM
[QUOTE]Originally posted by GrAfiX
I see the problem.. It does parse each post seperatly... but if you have more than 1 image in a post it will only take the first one... I'll fix that today... Most people don't post a bunch of pics and if they do there the same size...
I'm working on it..
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.