How to rotate an image in GD Image Library while k

2019-02-28 21:34发布

I'm making a skin previewer for my site; I need to rotate parts of an image to create a representation of this for my users to see.

The skin is a PNG file, and all parts of it may have transparency or even none at all.

I need to be able to rotate this image while keeping any transparency inside the image transparent, while also having the extended borders (You know, the area that wasn't part of the image before it was rotated) transparent.

All of my attempts have left a black border around the image itself.

Any help?

3条回答
做自己的国王
2楼-- · 2019-02-28 21:43

You may want to check here for some uses for libpng (which will need zlib). If you are on linux you can write something in perl. CPAN GD module might be your ticket.

查看更多
神经病院院长
3楼-- · 2019-02-28 21:45

I use that to rotate a PNG and preserve transparency color. Works like a charm. It's "basic GD".

 $rotation = 135;
 $handle_rotated = imagerotate($handle_not_rotated,$rotation,0);
 imagealphablending($handle_rotated, true);
 imagesavealpha($handle_rotated, true); 

Don't know if it's what you're looking for?

查看更多
Ridiculous、
4楼-- · 2019-02-28 21:59
  1. Cut out the piece of the image you want to rotate
  2. Rotate preserving alpha using something like this http://www.exorithm.com/algorithm/view/rotate_image_alpha
  3. Merge back in preserving alpha using the following:

-

imagesetbrush($destimg, $srcimg);
// x, y are the center of target paste location
imageline($destimg, $x, $y, $x, $y, IMG_COLOR_BRUSHED);
查看更多
登录 后发表回答