Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Auto Resize Image Attachments (Avatars & Profile Pic Too).... Details »»
Auto Resize Image Attachments (Avatars & Profile Pic Too)....
Version: 1.00, by mini2 mini2 is offline
Developer Last Online: Oct 2010 Show Printable Version Email this Page

Version: 3.0.6 Rating:
Released: 08-16-2004 Last Update: 11-11-2004 Installs: 73
 
No support by the author.

Gone

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #52  
Old 05-07-2005, 12:25 AM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent hack! *clicks install* Does exactly what is says on the tin :-)

Just a quick question tho, do the 'original' large files automatically get deleted off the server or do we have to do that manually?

Also a note for people using the attachment resizer, you have to 'increase' the sizes in your ACP to let the larger files get uploaded to then be resized. :-)
Reply With Quote
  #53  
Old 05-18-2005, 11:28 PM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sometimes the images shown (JPG) are a bit dark... anyway to get them lighter? :-/

Most users wont know how to conver to gif, so thats not any option really...
Reply With Quote
  #54  
Old 05-26-2005, 06:06 PM
Bounce's Avatar
Bounce Bounce is offline
 
Join Date: Mar 2004
Location: Edinburgh,Scotland
Posts: 919
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Uploaded all as per instructions,doesn't seem to be working

Do you need safe mode turned off for this to work...

Uploaded the 2 hacks,no errors or anything but doesn't work :ermm:

Edit: Got the avatar hack working,slight problem same as another user, the pic is slightly darker
Reply With Quote
  #55  
Old 06-30-2005, 07:20 AM
lionslair lionslair is offline
 
Join Date: Apr 2005
Location: Western Australia
Posts: 42
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for that wiked hack
Reply With Quote
  #56  
Old 07-31-2005, 04:02 AM
kobescoresagain kobescoresagain is offline
 
Join Date: Feb 2005
Posts: 327
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

anyone know if you can intergrate this into vb gallery?
Reply With Quote
  #57  
Old 08-05-2005, 05:41 AM
kmike kmike is offline
 
Join Date: Oct 2002
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent hack.
I see a couple of small problems with it though:
  1. it doesn't handle additional image types supported by getimagesize() PHP function, e.g. .SWF, .PSD, and .BMP. First two are probably non-issue, but our forum has .bmp attachments enabled, and this hack will generate an empty resized image for them
  2. a huge image can cause "out of memory" PHP error on ImageCopyResampled() call, and the hack doesn't handle these situations (I think 500 errors cited in this thread are caused exactly by this - check your error logs for PHP errors)
  3. the attachment file size stored in the db is wrong - the stored number is the size of original attachment, not the resized one. the total space occupied by member's attachments will be wrong, which may cause problems if attachment quotas are defined for usergroups
  4. some memory could be freed during script execution by adding ImageDestroy() calls in the proper places
  5. I think UnsharpMask() call is only needed if the attachthumbs option in admin CP set to "Yes - sharpen" (to be consistent with thumbnails handling)
  6. there's no need to mess with "require_once('./includes/functions_image.php');" line at all. The file is only included once, if needed

I've fixed these problems, and also did some code cleanup.
You can uncomment error_log() lines and change email to your actual address to get some idea how this hack performs.

Code:
				// HACK: auto resize uploaded images
				switch ($imginfo[2])
				{
				case 1:
                			$im = ImageCreateFromGIF($attachment);
					break;
				case 2:
                			$im = ImageCreateFromJPEG($attachment);
					break;
				case 3:
                			$im = ImageCreateFromPNG($attachment);
					break;
				// no way to handle these image types
				default:
					// error_log("Couldn't resize $attachment ($filesize bytes)", 1, "email@yourdomain.net");
					@unlink($attachment);
					eval('$error = "' . fetch_phrase('attachbaddimensions', PHRASETYPEID_ERROR) . '";');
					$errors[] = array(
						'filename' => $attachment_name,
						'error' => $error
					);
					return false;
				}

				$w = $imginfo[0];
				$h = $imginfo[1];
				$width_factor = $w / $maxattachwidth;
				$height_factor = $h / $maxattachheight;
				if ($width_factor > $height_factor)
				{
					$nw = round($w / $wdth_factor);
					$nh = round($h / $wdth_factor);
				}
				else
				{
					$nw = round($w / $height_factor);
					$nh = round($h / $height_factor);
				}

				$ni = @ImageCreateTrueColor($nw, $nh);
				if ($ni OR !@ImageCopyResampled($ni, $im, 0, 0, 0, 0, $nw, $nh, $w, $h))
				{
					// failed to resize this image
					// error_log("Couldn't resize $attachment ${w}x${h} to ${nw}x${nh} ($filesize bytes)", 1, "email@yourdomain.net");
					@unlink($attachment);
					eval('$error = "' . fetch_phrase('attachbaddimensions', PHRASETYPEID_ERROR) . '";');
					$errors[] = array(
						'filename' => $attachment_name,
						'error' => $error
					);
					return false;
				}
				@ImageDestroy($im);
				if (PHP_VERSION != '4.3.2' AND $vboptions['attachthumbs'] == 2)
				{
					require_once('./includes/functions_image.php');
					UnsharpMask($ni);
				}
				switch ($imginfo[2])
				{
				case 1:
					@ImageGIF($ni, $attachment);
                			break;
				case 2:
					@ImageJPEG($ni, $attachment, 70);
					break;
				case 3:
					@ImagePNG($ni, $attachment);
					break;
				}
				@ImageDestroy($ni);
				$filesize1 = @filesize($attachment);
				// error_log("Resized $attachment ${w}x${h} to ${nw}x${nh} ($filesize to ${filesize1})", 1, "email@yourdomain.net");
				$filesize = $filesize1;
				// /HACK
Reply With Quote
  #58  
Old 08-08-2005, 12:41 AM
mvigod mvigod is offline
 
Join Date: Dec 2001
Location: Jersey
Posts: 159
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

kmike,

nice fixes. has anyone tested this yet on 3.5 RC2?
Reply With Quote
  #59  
Old 08-31-2005, 02:51 PM
thephonemall thephonemall is offline
 
Join Date: Oct 2004
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am getting this error when attempting the Profile Pic modification:

Fatal error: Call to undefined function: unsharpmask() in /home/website/forums/includes/functions_upload.php on line 294

EDIT:

Nevermind added
require_once('./includes/functions_image.php');
and it works!
Reply With Quote
  #60  
Old 10-25-2005, 12:39 PM
MrNase MrNase is offline
 
Join Date: May 2003
Location: Germany
Posts: 670
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can this one please be ported to vB3.5?
Reply With Quote
  #61  
Old 11-14-2005, 08:41 AM
lazytown lazytown is offline
 
Join Date: Feb 2004
Posts: 503
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

A port to 3.5 would be VERY useful.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:29 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05417 seconds
  • Memory Usage 2,305KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete