Avatar billede gil-galad Nybegynder
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?
Avatar billede 3xm Nybegynder
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?
Avatar billede gil-galad Nybegynder
22. marts 2004 - 20:25 #2
jo, antal pixel fra kanten
Avatar billede 3xm Nybegynder
22. marts 2004 - 20:27 #3
altså du vil bibeholde den oprindelige størrelse på billedet?
Avatar billede gil-galad Nybegynder
22. marts 2004 - 20:28 #4
ja
Avatar billede 3xm Nybegynder
22. marts 2004 - 20:29 #5
vil du så resize eller klippe i billedet?
Avatar billede gil-galad Nybegynder
22. marts 2004 - 20:36 #6
klippe
Avatar billede 3xm Nybegynder
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.

=)
Avatar billede gil-galad Nybegynder
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 :-)
Avatar billede gil-galad Nybegynder
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?
Avatar billede 3xm Nybegynder
22. marts 2004 - 21:36 #10
så er jeg tilbage efter noget ædelse... kigger det lige igennem.

=)
Avatar billede gil-galad Nybegynder
22. marts 2004 - 21:37 #11
det ser i hvertfald ud til at virke :-)
Avatar billede 3xm Nybegynder
22. marts 2004 - 21:37 #12
det ser fint ud. virker det ikke?
Avatar billede gil-galad Nybegynder
22. marts 2004 - 21:38 #13
jo, smider du ikke et svar?
Avatar billede gil-galad Nybegynder
22. marts 2004 - 21:38 #14
Avatar billede 3xm Nybegynder
22. marts 2004 - 21:40 #15
det ser jo fint ud. men burde du ikke fylde ud med grå i stedet for sort?

=)
Avatar billede gil-galad Nybegynder
22. marts 2004 - 21:41 #16
jojo... det er på vej :-) det var bare en test
Avatar billede 3xm Nybegynder
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.

=)
Avatar billede gil-galad Nybegynder
22. marts 2004 - 21:44 #18
tak for det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester