Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 1172
samfunnsukritisk
JunkieXL's Avatar
Hei!
Jeg har et ganske rart problem!
Jeg har ett script som skal gjøre png-bilder større. Når jeg tester scriptet på localhost fungerer det helt fint men når jeg laster det opp til serveren blir det kun ett svart bilde:
http://www.pzyko.net/skins/newrez.php?skin=http://www.pzyko.net/skins/skins/19106057681548255380.mathiasjr.png

Kode

<?php
function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
}

// File and new size
$fil = clean($_GET['skin']);

header('Content-type: image/png');
//$myimage = resizeImage('filename', 'newwidthmax', 'newheightmax');

function resizeImage($filename, $newwidth, $newheight){
    list($width, $height) = getimagesize($filename);
 
    $thumb = imagecreatetruecolor($newwidth, $newheight);
    $source = imagecreatefrompng($filename);
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    return imagepng($thumb);
}

$myimage = resizeImage($fil, '640', '320');
print $myimage;

?>
Der er koden, hva er problemet?
Sist endret av JunkieXL; 3. mai 2011 kl. 17:02.
Sikkerhetsklarert
Hva slags server er det? Et webhotell (shared host) eller en dedikert boks du har full tilgang til?

Jeg mistenker det er konfigurering av php som er satt opp til å begrense mengde minne.

Sjekk evt dette i php.ini
samfunnsukritisk
JunkieXL's Avatar
Trådstarter
Han som eier siden, eier også serveren. Den står hjemme hos han...

Edit: Har fiksa litt på koden, så nå er den kun gjenomsiktig :S

Ny kildekode:

Kode

<?php
function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
}

// File and new size
$fil = clean($_GET['skin']);

header('Content-type: image/png');
//$myimage = resizeImage('filename', 'newwidthmax', 'newheightmax');

function resizeImage($filename, $newwidth, $newheight){
    list($width, $height) = getimagesize($filename);
 
    $thumb = imagecreatetruecolor($newwidth, $newheight);
	$transparent = imagecolorallocate($thumb, 200, 255, 200);
  imagefill($thumb, 0, 0, $transparent);
  imagecolortransparent($thumb, $transparent);
	
    $source = imagecreatefrompng($filename);
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    return imagepng($thumb);
}

$myimage = resizeImage($fil, '640', '320');
print $myimage;

?>
Hva er det i såfall jeg må endre i PHP.INI?
z0p
uʍop ǝpısdn
z0p's Avatar
har du et eksempel på et bilde det ikke fungerer med? Kan det være at det blir krøll med transparent color / alpha-channel dersom det er snakk om gif/png bilder?
Har du prøvd imagecopyresampled?

Hvorfor vil du forstøtte et bilde serverside? Hvorfor ikke clientside? Greit nok at de fleste nettlesere har relativt dårlige algoritmer for resize av bilder, men du taper jo endel på lastetid ved å først resize i et serverside skript, for deretter å måtte sende en ekstra mengde med data over HTTP. Jeg vet ikke hvor stor forskjellen blir på resultatet av serverside vs clientside resize?
<?php getUserTitle(); ?>
MrMrtn's Avatar
Sørg for at serveren 1) støtter php GD og 2) det er tillatt i PHP.ini filen på serveren.
samfunnsukritisk
JunkieXL's Avatar
Trådstarter
Sitat av Waver Vis innlegg
Sørg for at serveren 1) støtter php GD og 2) det er tillatt i PHP.ini filen på serveren.
Vis hele sitatet...

Kode

Configure Command	 '/var/tmp/apache_mod_php/apache_mod_php-53.4~2/php/configure' '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--sysconfdir=/private/etc' '--with-apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file-path=/etc' '--with-libxml-dir=/usr' '--with-openssl=/usr' '--with-kerberos=/usr' '--with-zlib=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--with-curl=/usr' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.4~2/Root/usr/local' '--with-png-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.4~2/Root/usr/local' '--enable-gd-native-ttf' '--with-ldap=/usr' '--with-ldap-sasl=/usr' '--enable-mbstring' '--enable-mbregex' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--with-iodbc=/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-wddx' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte' '--enable-zip' '--with-pcre-regex=/usr'

Kode

GD Support	enabled
GD Version	bundled (2.0.34 compatible)
GIF Read Support	enabled
GIF Create Support	enabled
JPEG Support	enabled
libJPEG Version	8
PNG Support	enabled
libPNG Version	1.4.4
WBMP Support	enabled
XBM Support	enabled

Directive	Local Value	Master Value
gd.jpeg_ignore_warning	0	0
Har lite peiling på dette, men er det ikke slik det skal se ut?

Sitat av z0p Vis innlegg
har du et eksempel på et bilde det ikke fungerer med?
Vis hele sitatet...
Bildet øverst er ett eksempel hvor det ikke fungerer...

Jeg tror kanskje jeg veit hva som er problemet. Når jeg sammenlikner phpinfo() på de tre serverene jeg har testet scriptet på(localhost, kameraten min sin server og min egen server), ser jeg at på localhost, som er det eneste stedet det virker så har jeg PHP versjon 5.3.5, mens de andre er 5.3.4 og 5.2.17, kan dette ha noe å si?
Sist endret av JunkieXL; 5. mai 2011 kl. 21:51.
▼ ... over en uke senere ... ▼
Jeg har fint lite peiling på det der, men kan du ikke bare bruke simpel html shit da? <img src="url" width="" height="" /img>

heh glem det xD
Sist endret av trønderfår; 19. mai 2011 kl. 10:37. Grunn: im noob