Verkkokamera-skripti

Aloittaja weatherc, lauantai, 23.10.2010, 17:44

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

angle

#20
Testasin clientraw:n laittamalla väärän polun, jolla meni tulos ihan tekstimössöksi. Oikea polku on yhtä kuin kuva näkyy.

Lainaaimagefilledrectangle($im2, 0, 575, 800, 600, $transparent);
imagettftext($im2, 11, 0, 0, 0, $grey, $font, $str);
Tuolta nyt näyttää tuo rivi, mutta ei näy säätietoja

weatherc

Hmm...Onko $font-filu olemassa?

Kokeile myös tällaista:
$str = $str.'12345';
imagettftext($im2, 11, 0, 0, 0, $grey, $font, $str);

Tuo poistaa sen että $str olisi tyhjä.

angle

Kyllä fontti filu on oikeassa paikassa.
Lainaa$grey = imagecolorallocate ($im2, 166, 166, 166);
$black = imagecolorallocate ($im2, 0,0,0);

$str = $cstring.' - '.$bstring.' - '.$astring;
$transparent = imagecolorallocatealpha($im2, 0,0,0, 50);

imagefilledrectangle($im2, 0, 575, 800, 600, $transparent);
$str = $str.'12345';
imagettftext($im2, 11, 0, 0, 0, $grey, $font, $str);

header("Content-Type: image/jpeg");
imagejpeg($im2);
imagedestroy($im2);
Tuolta näyttää nyt vähän laajemmin nähtynä, mutta ei näy säätiedot.

angle

#23
No niin sain vihdoin toimimaan. En oikein ymmärrä miksi toimii näin. Muutin kuitenkin ensin tuon kuvan täytön arvot vastaamaan kuvan kokoa täsmälleen. Sitten alkoi tekstit ja taustat näkyä. Ja sitten hivutin tekstit kohdalleen.

Ei näköjään saanut olla oikeaa kuvaa suuremmat arvot tuossa täyttö toiminnossa. Tältä näyttää nyt.

$grey = imagecolorallocate ($im2, 166, 166, 166);
$black = imagecolorallocate ($im2, 0,0,0);

$str = $cstring.' - '.$bstring.' - '.$astring;
$transparent = imagecolorallocatealpha($im2, 0,0,0, 50);

imagefilledrectangle($im2, 0, 460, 640, 480, $transparent);
imagettftext($im2, 11, 0, 10, 475, $grey, $font, $str);

header("Content-Type: image/jpeg");
imagejpeg($im2);
imagedestroy($im2);


Tämä siis toimii serverillä olevalla kuvalla, mutta ei suoraan kamerasta haettuna. Onkohan tähän mitään muuta konstia hakea kuva?

Edit.
Heitin nyt toimivaksi havaitun php filun noille Saunalahden ja KYMP:n kotisisivu tiloihin. Ja kas KYMP toimii, Saunalahti ilmoittaa palvelin virhettä.
LainaaHTTP-virhe 500 (Internal Server Error): Palvelin kohtasi odottamattoman tilan yrittäessään toteuttaa pyyntöä.

weatherc

Sauniksella todennäköisesti php-asetukset asetettu päin honkia (= estetty kaiken mistä voisi olla hyötyä muttei ole turvariski) niin että php toimii vain puolivaloilla...

angle

#25
Lainaus käyttäjältä: weatherc - keskiviikko, 02.11.2011, 19:52
Sauniksella todennäköisesti php-asetukset asetettu päin honkia (= estetty kaiken mistä voisi olla hyötyä muttei ole turvariski) niin että php toimii vain puolivaloilla...
Meinasin tehdä asiasta ilmoituksen saunikselle, mutta lukaisin ensin mitä kotisivuista kerrotaan.
LainaaSaunalahti Kotisivutila -palveluun ei ole mahdollista saada PHP-tukea tai MySQL-tietokantaa. Kotisivutila tukee ainoastaan selaimen päässä suoritettavia ohjelmointikieliä ja tekniikoita, kuten HTML:ää ja JavaScriptiä.
No en sitten viitsinytkään valittaa, kun edes jotenkin php toimii.

Edit.
Sauniksen PHP verify. Ei näy ini tietoja lainkaan.

teutari

Jaa jaaa.... tuohan on se sama ongelma minkä kanssa minä tappelin mutta kun ei toiminut niin heitin pyyhkeet kehiin.

IP-kameran uppaaman kuvan kun hakee palvelimelta niin skripti toimii.  :D

Hakee skriptillä kuvan IP-kameralta tulee: Error opening http://xxxx.xxx.xx:xxx/cgi-bin/viewer/video.jpg!  :(

Laittaa selaimeen http://xxxx.xxx.xx:xxx/cgi-bin/viewer/video.jpg  niin IP-kameran kuva näkyy.  :D

angle

No sain sentään tuon weatherc:n "piilota kuvan URL" skriptin hakemaan kuvan suoraan kameralta, joten kai tämäkin pitäisi saada toimimaan. Testit jatkuu...

weatherc

LainaaNo sain sentään tuon weatherc:n "piilota kuvan URL" skriptin hakemaan kuvan suoraan kameralta, joten kai tämäkin pitäisi saada toimimaan

Tee kopio siitä, ja lisää siihen tekstit (kannattaa aloitaa vaikka "Böö"-tekstillä) ;D

angle

Lainaus käyttäjältä: weatherc - torstai, 03.11.2011, 14:33
LainaaNo sain sentään tuon weatherc:n "piilota kuvan URL" skriptin hakemaan kuvan suoraan kameralta, joten kai tämäkin pitäisi saada toimimaan

Tee kopio siitä, ja lisää siihen tekstit (kannattaa aloitaa vaikka "Böö"-tekstillä) ;D

Yllätyksekseni sain sittenkin hakemaan kuvan suoraan kameralta ja lisäämään tiedot kuvaan. Toimii ainakin kotiservulla. Tässä tämä sekasotku.

<?

$image = "http://xxx.xxx.xxx.xxx/snapshot.cgi?user=muuta&pwd=muuta&next_url=kamera2.jpg";
$im2 = imagecreatefromjpeg($image);

header("Content-Type: image/jpeg");
date_default_timezone_set("Europe/Helsinki");
$clientrawfile = "./saa/clientraw.txt";
$clientraw = get_raw($clientrawfile);

// date
$date = date('d.m.Y H:i:s T');

// weather
$weather= windDir($clientraw[3]) . " " . ktsToMph($clientraw[2],1) . " m/s, ".$clientraw[4]."°C, ". $clientraw[7]." mm";

// Create some colors
$white = imagecolorallocate($im2, 255, 255, 255);
$black = imagecolorallocate($im2, 0, 0, 0);
$grey = imagecolorallocate ($im2, 166, 166, 166);

// The text to draw
$text = 'www.omasaitti.fi';
$str = $text.' - '.$date.' - '.$weather;

// Replace path by your own font path
$font = 'tahoma.ttf';

// add gray area
$transparent = imagecolorallocatealpha($im2, 0,0,0, 50);
imagefilledrectangle($im2, 0, 460, 640, 480, $transparent);

// Add the text
imagettftext($im2, 12, 0, 10, 475, $white, $font, $str);
imagejpeg ($im2);
imagedestroy ($im2);


function get_raw( $rawfile ) {
        $rawdata = implode('', file($rawfile));
        $rawdata = explode(' ', $rawdata);
        return $rawdata;
}

function ktsToMph ($kts, $prec) {
          $prec = (integer)$prec;
          $inch = (float)$kts * 0.514444444;
          return round($inch, 1);
}

function windDir ($winddir)
// Given the wind direction, return the text label
// for that value.  16 point compass
{
  if (!isset($winddir)) {
    return "---";
  }
$windlabel = array ("N","NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S",
   "SSW","SW", "WSW", "W", "WNN", "NW", "NNW");
$dir = $windlabel[ (int) ($winddir / 22.5) ];
return "$dir";
}
exit;
?>

Kiitokset weatherc:lle tuesta.