22. marts 2004 - 19:27
Der er
17 kommentarer og 1 løsning
Billede beskæring ved rotation.
Goddag
Jeg bruger GDLib og skal rotere er 500*500px billede.. Hvis jeg roterer 0, 90, 180 eller 270 grader, er det selvfølgelig ikke noget problem... MEN hvis jeg vil rotere det 45 grader går det helt galt som i kan se..
http://spiff.users.whitehat.dk/123.php Kan man ikke på en måde få GDLib til at beskære alle fire hjørner så centum på billedet altid vil være det samme uanset drejningsvinkel? eller kan de måske løses på en anden måde?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
22. marts 2004 - 19:52
#1
undskyld, hvad er det helt præcist du mener? centrum på billedet ændrer sig da ikke bare fordi man drejer det en ikke-ret vinkel?
22. marts 2004 - 20:25
#2
jo, antal pixel fra kanten
22. marts 2004 - 20:27
#3
altså du vil bibeholde den oprindelige størrelse på billedet?
22. marts 2004 - 20:28
#4
ja
22. marts 2004 - 20:29
#5
vil du så resize eller klippe i billedet?
22. marts 2004 - 20:36
#6
klippe
22. marts 2004 - 20:53
#7
jeg går ud fra du har det roterede, større billede i en variabel. det er den jeg her kalder $billede_roteret ------------------- $billede_klippet = imagecreatetruecolor(500, 500); $bredde = imagesx($billede_roteret); $hoejde = imagesy($billede_roteret); imagecopy($billede_klippet, $billede_roteret, 0, 0, (($bredde-500)/2), (($hoejde-500)/2), 500, 500); ------------------------------- så har du variablen $billede_klippet som er de midterste 500x500 pixels fra $billede_roteret. eller... det burde du have. jeg har ikke lige haft mulighed for at teste det, men det burde virke. =)
22. marts 2004 - 21:14
#8
du må lige hjælpe mig lidt her, begyndte med GDLib i går :-) sådan ser scriptet ud: <?php header("Content-type: image/jpeg"); $bredde = 20; $hoejde = 500; $billede_roteret = "stjernehimmel.jpg"; // Udregn rotation $dato = (date('z') + 1); $degrees = date('G')* 15 + $dato; // Rotér $billede_roteret = imagecreatefromjpeg ("stjernehimmel.jpg"); $billede_roteret = imagerotate($billede_roteret, $degrees, 0); $billede_klippet = imagecreatetruecolor(500, 500); $bredde = imagesx($billede_roteret); $hoejde = imagesy($billede_roteret); imagecopy($billede_klippet, $billede_roteret, 0, 0, (($bredde-500)/2), (($hoejde-500)/2), 500, 500); ImageJPEG($billede_roteret); ImageDestroy($billede_roteret); ?> men det virker selvfølgelig ikke :-)
22. marts 2004 - 21:30
#9
ahhhh... sådan her: <?php header("Content-type: image/jpeg"); $bredde = 500; $hoejde = 500; $sti = "stjernehimmel.jpg"; // Udregn rotation $dato = (date('z') + 1); $degrees = date('G')* 15 + $dato; // Rotér $billede_roteret = imagecreatefromjpeg ($sti); $billede_roteret = imagerotate($billede_roteret, $degrees, 0); $billede_klippet = imagecreatetruecolor(500, 500); $bredde = imagesx($billede_roteret); $hoejde = imagesy($billede_roteret); imagecopy($billede_klippet, $billede_roteret, 0, 0, (($bredde-500)/2), (($hoejde-500)/2), 500, 500); ImageJPEG($billede_klippet); ImageDestroy($billede_klippet); ?> Det virker vist efter hensigten :-) Kan du se nogen dummefejl eller noget?
22. marts 2004 - 21:36
#10
så er jeg tilbage efter noget ædelse... kigger det lige igennem. =)
22. marts 2004 - 21:37
#11
det ser i hvertfald ud til at virke :-)
22. marts 2004 - 21:37
#12
det ser fint ud. virker det ikke?
22. marts 2004 - 21:38
#13
jo, smider du ikke et svar?
22. marts 2004 - 21:38
#14
22. marts 2004 - 21:40
#15
det ser jo fint ud. men burde du ikke fylde ud med grå i stedet for sort? =)
22. marts 2004 - 21:41
#16
jojo... det er på vej :-) det var bare en test
22. marts 2004 - 21:44
#17
super. spændende site forresten, og rigtig fed måde at udnytte gd's rotation på. altså formålet. jeg vil følge spændt med. =)
22. marts 2004 - 21:44
#18
tak for det :-)
Vi tilbyder markedets bedste kurser inden for webudvikling