![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Posiadam kamerę ip w sieci lokalnej z której jest dostęp do strumienia video i klatek obrazu, strumień video został umieszczony na stronie WWW. Niestety mam problem ponieważ kamera jest kolorowa, a design strony jest czarno biały i taki ma zostać, więc chciałbym aby video z kamery i obrazy z niej także były w grayscale. Ze strumieniem może być problem ponieważ jest realizowany przez kontrolkę activeX i już się z tym pogodziłem, jednakże może pojedyńcze klatki obrazu da się uzyskać w odcieniach szarości. adres do pojedyńczej klatki to: http://adres.pl:port/image.jpg
Zanalazłem gotowy skrypt w PHP który zmienia obraz kolorowy w grayscale, jednakże gdy zamiast nazwy pliku wpisuję ścieżkę dostępu do obrazu z kamery obraz się nie wyświetla: Kod <?php </P> <P>$file = 'http://adres.pl:port/image.jpg';<BR>$newfile = 'image.jpg';</P> <P>copy($file, $newfile);</P> <P><BR>$source_file = "image.jpg";</P> <P>$im = ImageCreateFromJpeg($source_file); </P> <P>$imgw = imagesx($im);<BR>$imgh = imagesy($im);</P> <P>for ($i=0; $i<$imgw; $i++)<BR>{<BR> for ($j=0; $j<$imgh; $j++)<BR> {<BR> <BR> // get the rgb value for current pixel<BR> <BR> $rgb = ImageColorAt($im, $i, $j); <BR> <BR> // extract each value for r, g, b<BR> <BR> $rr = ($rgb >> 16) & 0xFF;<BR> $gg = ($rgb >> 8) & 0xFF;<BR> $bb = $rgb & 0xFF;<BR> <BR> // get the Value from the RGB value<BR> <BR> $g = round(($rr + $gg + $bb) / 3);<BR> <BR> // grayscale values have r=g=b=g<BR> <BR> $val = imagecolorallocate($im, $g, $g, $g);<BR> <BR> // set the gray value<BR> <BR> imagesetpixel ($im, $i, $j, $val);<BR> }<BR>}</P> <P>header('Content-type: image/jpeg');<BR>imagejpeg($im);<BR>?> pomyślałem także, że może by pierw zapisać obraz z adresu na serwer www za pomocą poniższego skryptu, a później skorzystać z powyższego skryptu Kod <?php<BR>$file = 'http://adres.pl:port/image.jpg';<BR>$newfile = 'image.jpg';</P> <P>copy($file, $newfile);</P> <P>// Save the image as 'image.jpg'<BR>imagejpeg($file, 'image.jpg');</P> <P>// Free up memory<BR>imagedestroy($file);<BR>?> Jednakże pliku także nie zapisuje. Zaznaczam, że nie jest to problem uprawnień zapisu na serwerze. Proszę o pomoc. Ten post edytował djgreen 29.01.2009, 00:10:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 15:10 |