bepaalde pixels uit een image

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koh do

koh do

12/01/2012 16:50:02
Quote Anchor link
Misschien een beetje een vage titel maar ik kon niets beters bedenken. Ik zal maar meteen uitleggen waar na ik opzoek ben.

Ik zou graag bijvoorbeeld een stukje van 10 bij 10 pixels uit een bepaalde image willen halen. bijvoorbeeld:

Afbeelding
of
Afbeelding

kan ik dit op de een of andere manier selecteren uit een image, de images staan op mijn pc?
Gewijzigd op 12/01/2012 16:50:48 door Koh do
 
PHP hulp

PHP hulp

16/05/2024 10:53:38
 
Erwin H

Erwin H

12/01/2012 16:54:15
 
Koh do

koh do

12/01/2012 17:47:23
Quote Anchor link
Zou je een klein voorbeeld je kunnen geven. want de voorbeelden die ik tegen ben gekomen geven alleen aan hoe ik mijn plaatje moet vergroten of verkleinen.
 
Erwin H

Erwin H

12/01/2012 18:00:16
Quote Anchor link
De definitie van de functie is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
imagecopyresampled (
  resource $dst_image ,
  resource $src_image ,
  int $dst_x ,
  int $dst_y ,
  int $src_x ,
  int $src_y ,
  int $dst_w ,
  int $dst_h ,
  int $src_w ,
  int $src_h )
?>

Er zijn dus twee image resources dst en src. Ofwel, dst is het nieuwe plaatje wat je gaat maken, src het plaatje wat je hebt.
Verder heb je van beide de coordinaten in het plaatje (x,y) en de grootte (w,h).
Als je nu dus een uitsnede wilt maken zonder de dimensies van die uitsnede te veranderen, bijvoorbeeld een vierkant met breedte 10, hoogte 10 en vanaf de coordinaten (100,200) dan doe je dat als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
imagecopyresampled (
  resource $dst_image ,
  resource $src_image ,
  0 ,
  0 ,
  100 ,
  200 ,
  10 ,
  10 ,
  10 ,
  10 )
?>

Dus:
(0,0) zijn de coordinaten in het nieuwe plaatje waar de copy terecht komt
(100,200) zijn de coordinaten van het stukje dat je uitknipt
(10,10) zijn de breedte en hoogte in het nieuwe plaatje
(10,10) zijn de breedte en hoogte in het origineel
 
Koh do

koh do

12/01/2012 18:46:56
Quote Anchor link
wow bedankt dat had ik zelf nooit op kunnen maken uit php.net ik ga er meteen mee aan de slag bedankt.
 
Koh do

koh do

13/01/2012 19:01:05
Quote Anchor link
Nogmaals bedankt voor de goede informatie, maar als zo vaak kom ik van het ene probleem in het andere.

wanneer ik twee keer een deel uit een plaatje haal en deze wil echo-en op het scherm zie ik er maar 1. om te testen of ik zelf iets fout deed heb ik gewoon het voorbeeld op php.net gebrukt en deze twee keer onder elkaar gezet. maar het werkt nog steeds niet. doe ik iets fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
// Create a blank image and add some text
$im1 = imagecreatetruecolor(120, 20);
$text_color1 = imagecolorallocate($im1, 233, 14, 91);
imagestring($im1, 1, 5, 5,  'A Simple Text String', $text_color1);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im1);

// Free up memory
imagedestroy($im1);


// Create a blank image and add some text
$im2 = imagecreatetruecolor(120, 20);
$text_color2 = imagecolorallocate($im2, 233, 14, 91);
imagestring($im2, 1, 5, 5,  'A Simple Text String', $text_color2);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im2);

// Free up memory
imagedestroy($im2);
?>

Gewijzigd op 13/01/2012 19:01:42 door koh do
 
Erwin H

Erwin H

13/01/2012 19:11:18
Quote Anchor link
Dat komt (denk ik) omdat je niet twee keer de output op die manier naar het scherm kan schrijven.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/01/2012 19:21:46
Quote Anchor link
Je kan zeker niet 2x een header verzenden
 
Koh do

koh do

13/01/2012 19:55:52
Quote Anchor link
Erwin H op 13/01/2012 19:11:18:
Dat komt (denk ik) omdat je niet twee keer de output op die manier naar het scherm kan schrijven.


is er wel een andere manier, of moet je het opslaan? om het vervolgens weer te openen.
 
Erwin H

Erwin H

13/01/2012 19:57:34
Quote Anchor link
Wat wil je precies doen dan?
 
Kris Peeters

Kris Peeters

13/01/2012 20:02:11
Quote Anchor link
Je moet weten hoe je het moet gebruiken.
Je moet dat aanroepen vanuit een <img>.

Minuutje, ik update dit bericht direct met een voorbeeld.



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
// uiteraard zou je dit uit een database halen
// ... het is maar een voorbeeld ...

$image_color = array(
  15 =>  array(233, 14, 91),
  25 => array(14, 91, 233 )
);

/**/
if (isset($_GET['image'])) {
    // hier gaan we de image creëren.  De <img> zal die aanroepen
    
  // Create a blank image and add some text

  $im1 = imagecreatetruecolor(150, 20);
  $text_color1 = imagecolorallocate($im1,
    $image_color[$_GET['image']][0],
    $image_color[$_GET['image']][1],
    $image_color[$_GET['image']][2]
  );

  imagestring($im1, 1, 5, 5,  'A Simple Text String ' . (int) $_GET['image'], $text_color1);
  
  // Set the content type header - in this case image/jpeg
  header('Content-Type: image/jpeg');
  
  // Output the image
  imagejpeg($im1);
  
  // Free up memory
  imagedestroy($im1);
  
}

else {
  // de gewone pagina
  echo '
<html>
  <head>
  </head>
  <body>
    <img src="?image=15"/> image met 15 <br/>
    <img src="?image=25"/> image met 25 <br/>
  </body>
</html>
'
;
}

?>
Gewijzigd op 13/01/2012 20:26:13 door Kris Peeters
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.