patawic Posted February 13, 2010 Share Posted February 13, 2010 I have all of my functions. but it appears that the functions i am using does not like using php generated images for its gif animation. Heres my text.php works perfectly fine <? $codelenght = 10; while($newcode_length < $codelenght) { $x=1; $y=3; $part = rand($x,$y); if($part==1){$a=48;$b=57;} // Numbers if($part==2){$a=65;$b=90;} // UpperCase if($part==3){$a=97;$b=122;} // LowerCase $code_part=chr(rand($a,$b)); $newcode_length = $newcode_length + 1; $newcode = $newcode.$code_part; } $my_img = imagecreate(200, 80); $background = imagecolorallocate( $my_img, 0, 0, 255); $text_colour = imagecolorallocate( $my_img, 255, 255, 0); $line_colour = imagecolorallocate( $my_img, 128, 255, 0 ); imagestring($my_img, 4, 30, 25, "$newcode", $text_colour); imagesetthickness ($my_img, 5); imageline($my_img, 30, 45, 165, 45, $line_colour); header("Content-type: image/gif"); imagegif( $my_img ); imagedestroy($my_img); ?> Heres my index.php <?php include "GIFEncoder.class.php"; $images = array("text.php" , "text.php"); $speed = "15"; $gif = new GIFEncoder($images, $speed, 0, 2, 0, 0, 0, "url"); Header ( 'Content-type:image/gif' ); echo $gif->GetAnimation ( ); ?> Heres my GIFEncoder.class.php <?php /* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFEncoder Version 2.0 by László Zsidi, http://gifs.hu :: :: This class is a rewritten 'GifMerge.class.php' version. :: :: Modification: :: - Simplified and easy code, :: - Ultra fast encoding, :: - Built-in errors, :: - Stable working :: :: :: Updated at 2007. 02. 13. '00.05.AM' :: :: :: :: Try on-line GIFBuilder Form demo based on GIFEncoder. :: :: http://gifs.hu/phpclasses/demos/GifBuilder/ :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */ Class GIFEncoder { var $GIF = "GIF89a"; /* GIF header 6 bytes */ var $VER = "GIFEncoder V2.05"; /* Encoder version */ var $BUF = Array ( ); var $LOP = 0; var $DIS = 2; var $COL = -1; var $IMG = -1; var $ERR = Array ( ERR00=>"Does not supported function for only one image!", ERR01=>"Source is not a GIF image!", ERR02=>"Unintelligible flag ", ERR03=>"Does not make animation from animated GIF source", ); /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFEncoder... :: */ function GIFEncoder ( $GIF_src, $GIF_dly, $GIF_lop, $GIF_dis, $GIF_red, $GIF_grn, $GIF_blu, $GIF_mod ) { if ( ! is_array ( $GIF_src ) && ! is_array ( $GIF_tim ) ) { printf ( "%s: %s", $this->VER, $this->ERR [ 'ERR00' ] ); exit ( 0 ); } $this->LOP = ( $GIF_lop > -1 ) ? $GIF_lop : 0; $this->DIS = ( $GIF_dis > -1 ) ? ( ( $GIF_dis < 3 ) ? $GIF_dis : 3 ) : 2; $this->COL = ( $GIF_red > -1 && $GIF_grn > -1 && $GIF_blu > -1 ) ? ( $GIF_red | ( $GIF_grn << 8 ) | ( $GIF_blu << 16 ) ) : -1; for ( $i = 0; $i < count ( $GIF_src ); $i++ ) { if ( strToLower ( $GIF_mod ) == "url" ) { $this->BUF [ ] = fread ( fopen ( $GIF_src [ $i ], "rb" ), filesize ( $GIF_src [ $i ] ) ); } else if ( strToLower ( $GIF_mod ) == "bin" ) { $this->BUF [ ] = $GIF_src [ $i ]; } else { printf ( "%s: %s ( %s )!", $this->VER, $this->ERR [ 'ERR02' ], $GIF_mod ); exit ( 0 ); } if ( substr ( $this->BUF [ $i ], 0, 6 ) != "GIF87a" && substr ( $this->BUF [ $i ], 0, 6 ) != "GIF89a" ) { printf ( "%s: %d %s", $this->VER, $i, $this->ERR [ 'ERR01' ] ); exit ( 0 ); } for ( $j = ( 13 + 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ) ), $k = TRUE; $k; $j++ ) { switch ( $this->BUF [ $i ] { $j } ) { case "!": if ( ( substr ( $this->BUF [ $i ], ( $j + 3 ), 8 ) ) == "NETSCAPE" ) { printf ( "%s: %s ( %s source )!", $this->VER, $this->ERR [ 'ERR03' ], ( $i + 1 ) ); exit ( 0 ); } break; case ";": $k = FALSE; break; } } } GIFEncoder::GIFAddHeader ( ); for ( $i = 0; $i < count ( $this->BUF ); $i++ ) { GIFEncoder::GIFAddFrames ( $i, $GIF_dly [ $i ] ); } GIFEncoder::GIFAddFooter ( ); } /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFAddHeader... :: */ function GIFAddHeader ( ) { $cmap = 0; if ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x80 ) { $cmap = 3 * ( 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ) ); $this->GIF .= substr ( $this->BUF [ 0 ], 6, 7 ); $this->GIF .= substr ( $this->BUF [ 0 ], 13, $cmap ); $this->GIF .= "!\377\13NETSCAPE2.0\3\1" . GIFEncoder::GIFWord ( $this->LOP ) . "\0"; } } /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFAddFrames... :: */ function GIFAddFrames ( $i, $d ) { $Locals_str = 13 + 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ); $Locals_end = strlen ( $this->BUF [ $i ] ) - $Locals_str - 1; $Locals_tmp = substr ( $this->BUF [ $i ], $Locals_str, $Locals_end ); $Global_len = 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ); $Locals_len = 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ); $Global_rgb = substr ( $this->BUF [ 0 ], 13, 3 * ( 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ) ) ); $Locals_rgb = substr ( $this->BUF [ $i ], 13, 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ) ); $Locals_ext = "!\xF9\x04" . chr ( ( $this->DIS << 2 ) + 0 ) . chr ( ( $d >> 0 ) & 0xFF ) . chr ( ( $d >> 8 ) & 0xFF ) . "\x0\x0"; if ( $this->COL > -1 && ord ( $this->BUF [ $i ] { 10 } ) & 0x80 ) { for ( $j = 0; $j < ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ); $j++ ) { if ( ord ( $Locals_rgb { 3 * $j + 0 } ) == ( ( $this->COL >> 16 ) & 0xFF ) && ord ( $Locals_rgb { 3 * $j + 1 } ) == ( ( $this->COL >> 8 ) & 0xFF ) && ord ( $Locals_rgb { 3 * $j + 2 } ) == ( ( $this->COL >> 0 ) & 0xFF ) ) { $Locals_ext = "!\xF9\x04" . chr ( ( $this->DIS << 2 ) + 1 ) . chr ( ( $d >> 0 ) & 0xFF ) . chr ( ( $d >> 8 ) & 0xFF ) . chr ( $j ) . "\x0"; break; } } } switch ( $Locals_tmp { 0 } ) { case "!": $Locals_img = substr ( $Locals_tmp, 8, 10 ); $Locals_tmp = substr ( $Locals_tmp, 18, strlen ( $Locals_tmp ) - 18 ); break; case ",": $Locals_img = substr ( $Locals_tmp, 0, 10 ); $Locals_tmp = substr ( $Locals_tmp, 10, strlen ( $Locals_tmp ) - 10 ); break; } if ( ord ( $this->BUF [ $i ] { 10 } ) & 0x80 && $this->IMG > -1 ) { if ( $Global_len == $Locals_len ) { if ( GIFEncoder::GIFBlockCompare ( $Global_rgb, $Locals_rgb, $Global_len ) ) { $this->GIF .= ( $Locals_ext . $Locals_img . $Locals_tmp ); } else { $byte = ord ( $Locals_img { 9 } ); $byte |= 0x80; $byte &= 0xF8; $byte |= ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ); $Locals_img { 9 } = chr ( $byte ); $this->GIF .= ( $Locals_ext . $Locals_img . $Locals_rgb . $Locals_tmp ); } } else { $byte = ord ( $Locals_img { 9 } ); $byte |= 0x80; $byte &= 0xF8; $byte |= ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ); $Locals_img { 9 } = chr ( $byte ); $this->GIF .= ( $Locals_ext . $Locals_img . $Locals_rgb . $Locals_tmp ); } } else { $this->GIF .= ( $Locals_ext . $Locals_img . $Locals_tmp ); } $this->IMG = 1; } /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFAddFooter... :: */ function GIFAddFooter ( ) { $this->GIF .= ";"; } /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFBlockCompare... :: */ function GIFBlockCompare ( $GlobalBlock, $LocalBlock, $Len ) { for ( $i = 0; $i < $Len; $i++ ) { if ( $GlobalBlock { 3 * $i + 0 } != $LocalBlock { 3 * $i + 0 } || $GlobalBlock { 3 * $i + 1 } != $LocalBlock { 3 * $i + 1 } || $GlobalBlock { 3 * $i + 2 } != $LocalBlock { 3 * $i + 2 } ) { return ( 0 ); } } return ( 1 ); } /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GIFWord... :: */ function GIFWord ( $int ) { return ( chr ( $int & 0xFF ) . chr ( ( $int >> 8 ) & 0xFF ) ); } /* ::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: GetAnimation... :: */ function GetAnimation ( ) { return ( $this->GIF ); } } ?> Any help would be gladly appreciated Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/ Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 You haven't exactly described any problem. Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011655 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 oops sorry XD. it says this when i load index.php "GIFEncoder V2.05: 0 Source is not a GIF image!" Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011660 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 You might need to hack the class itself. Where it has.... if ( substr ( $this->BUF [ $i ], 0, 6 ) != "GIF87a" && substr ( $this->BUF [ $i ], 0, 6 ) != "GIF89a" ) { printf ( "%s: %d %s", $this->VER, $i, $this->ERR [ 'ERR01' ] ); exit ( 0 ); } Change it too.... die(substr ( $this->BUF [ $i ], 0, 6 )); if ( substr ( $this->BUF [ $i ], 0, 6 ) != "GIF87a" && substr ( $this->BUF [ $i ], 0, 6 ) != "GIF89a" ) { printf ( "%s: %d %s", $this->VER, $i, $this->ERR [ 'ERR01' ] ); exit ( 0 ); } And let us know what it says. Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011663 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 if i replace the code with yours. i just get a blank screen and if i view teh source of the page it says has <? $c and thats it :/ Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011666 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 Your using short open tags within text.php, don't. Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011668 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 short open tags wont make any difference will they? Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011669 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 may i ask what a short open tag is? <? You should always use.... <?php Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011671 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 realised that after i posted :/. still doesnt fix my problem though :/ Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011672 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 So... what have you done to debug the problem? Have you tried executing the changes I made? Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011676 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 when i executed your code it gave me a blank screen Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011680 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 Well your going to need to keep debugging it until you find what causes that if statement to return true. Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011694 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 i still cant get it to work :/ Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011920 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 i still cant get it to work :/ What steps have you taken to debug the problem? Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011942 Share on other sites More sharing options...
patawic Posted February 13, 2010 Author Share Posted February 13, 2010 all i know is that its something to do with the header of the gif image that text.php is generating Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011961 Share on other sites More sharing options...
trq Posted February 13, 2010 Share Posted February 13, 2010 One more time. What steps have you taken to debug the problem? Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1011965 Share on other sites More sharing options...
patawic Posted February 14, 2010 Author Share Posted February 14, 2010 Help guys. its something to do with the generated images header, as the part of code that displays the error checks to see if the header is correct or not. Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1012003 Share on other sites More sharing options...
patawic Posted February 14, 2010 Author Share Posted February 14, 2010 thorpe i dont know how i can debug the problem. if i edit the header of a proper gif image, it starts giving the error. so the text.php is generating false .gif images Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1012004 Share on other sites More sharing options...
patawic Posted February 16, 2010 Author Share Posted February 16, 2010 Bump Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1013007 Share on other sites More sharing options...
patawic Posted February 17, 2010 Author Share Posted February 17, 2010 bump Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1013578 Share on other sites More sharing options...
patawic Posted February 18, 2010 Author Share Posted February 18, 2010 bump..... help guys Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1014188 Share on other sites More sharing options...
trq Posted February 18, 2010 Share Posted February 18, 2010 You could keep bumping for days or let us know what effort you have made to solve the problem. Quote Link to comment https://forums.phpfreaks.com/topic/191939-gif-image-with-random-text-in-each-frame/#findComment-1014233 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.