I had similar issues when first working with images. I ended up using "image/jpg" for the mimetype regardless of the actual type of file and that seemed to clear up the issue.
--Peter On Jan 20, 8:46 am, Kevin Thompson <[email protected]> wrote: > Matt, > I tried changing my script to generate a gif, and my issues with > twitter dissapeared, but my image was no longer rendering properly so > I switched the output back to png and added the mimetype to the image > data, but now I'm not getting any response. > > foreach($_POST as $key => $var){ > $POST[$key] = htmlspecialchars($var,ENT_QUOTES); > } > > if($POST['twittername'] != '' && $POST['twitterpass'] != ''){ > > $url = 'http://twitter.com/users/show/'. urlencode($POST > ['twittername']) . '.xml'; > $curl = curl_init($url); > > curl_setopt($curl, CURLOPT_VERBOSE, 1); > curl_setopt($curl, CURLOPT_NOBODY, 0); > curl_setopt($curl, CURLOPT_HEADER, 0); > curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1); > curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); > $response = curl_exec($curl); > curl_close($curl); > > $user = new SimpleXMLElement($response); > $image_array = explode('.',$user->profile_image_url); > > $filename = $POST['twittername'] . '-' . time() . '.png'; > $badge = imagecreatefrompng($POST['badge']); > switch($image_array[(sizeof($image_array) - 1)]){ > case 'jpg': > $avatar = > imagecreatefromjpeg($user->profile_image_url); > break; > case 'png': > $avatar = > imagecreatefrompng($user->profile_image_url); > break; > case 'gif': > $avatar = > imagecreatefromgif($user->profile_image_url); > break; > default: > $avatar = > imagecreatefrompng($user->profile_image_url); > break; > } > > imagealphablending($badge,1); > imagealphablending($avatar,1); > imagecopy($avatar,$badge,0,0,0,0,48,48); > imagepng($avatar,$filename); > > //* > $url = 'http://twitter.com/account/update_profile_image.xml'; > > $curl = curl_init(); > curl_setopt($curl, CURLOPT_URL, "$url"); > curl_setopt($curl, CURLOPT_POST, 1); > curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); > curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); > curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 4); > curl_setopt($curl, CURLOPT_POSTFIELDS,array('image' => "@ > $filename;type=image/png")); > curl_setopt($curl, CURLOPT_USERPWD, $POST['twittername'] . > ':' . > $POST['twitterpass']); > $response = curl_exec($curl); > $info = curl_getinfo($curl); > curl_close($curl); > > imagedestroy($badge); > imagedestroy($avatar); > unlink($filename); > // */ > > On Jan 19, 12:18 pm, Matt Sanford <[email protected]> wrote: > > > > > Hi Kevin, > > > I find that error message misleading. If the image could not be > > processed for any reason the error says "possibly too big". That's > > normally the case with user uploads but it seems like from the API > > it's more often something else. Looking back through the Google Group > > it seems like GIF is predominantly the issue. If you create a similar > > 1x1 PNG does it do the same thing? We support GIF and it should work, > > but knowing what works and what doesn't will help narrow it down. > > > Thanks; > > — Matt Sanford / @mzsanford > > > On Jan 19, 2009, at 10:01 AM, DeBetta wrote: > > > > I just tested the update_profile_image API call and sent a 190K image > > > without issue. > > > > What kind of image are you trying to post? Do you have sample code you > > > can share? > > > > --Peter > > > > On Jan 19, 11:16 am, Kevin Thompson <[email protected]> wrote: > > >> I'm attempting to write a simple script to update the user's profile > > >> image, but I am getting a response that the image is possible too big > > >> each time. The file that I'm attempting to set as the user avatar is > > >> no larger than 5k, and it fails. > > > >> I created a 1px by 1px white gif which weighed in at about 43 bytes > > >> and it worked. > > > >> My suspicion is that for some reason the API is not correctly > > >> calculating the file size of the image data, or it's checking for a > > >> much smaller value than 700k.- Hide quoted text - > > - Show quoted text -
