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 -