MiniSVG : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « <source lang="c"> #include <config.h> #include <stdio.h> // obligatoire avant httpd.h #include <unistd.h> #include <signal.h> #ifdef _WIN32 # include <getopt.h> #else # ... »)
 
m
Ligne 1 : Ligne 1 :
 +
Ce fichier nécessite la présence de [[SVGlib]].h dans votre répertoire courant.
 
<source lang="c">
 
<source lang="c">
 
#include <config.h>
 
#include <config.h>

Version du 16 janvier 2013 à 13:11

Ce fichier nécessite la présence de SVGlib.h dans votre répertoire courant.

#include <config.h>
#include <stdio.h> // obligatoire avant httpd.h
#include <unistd.h>
#include <signal.h>
#ifdef _WIN32
#  include <getopt.h>
#else
#  include <sys/time.h>
#endif
#include <stdlib.h>
#include <httpd.h>
// ajouté pour projet 2013
#include "SVGlib.h"

void index_html(httpd *server) {
  httpdPrintf(server,"<HTML><TITLE>BONJOUR</TITLE><BODY><H1>Hello a vous</H1><object data=\"demo.svg\" width=\"320mm\" height=\"240mm\" type=\"image/svg+xml\"> <P><H1>Suite....</H1></P> </BODY></HTML>\n");
}

void demo_svg(httpd *server) {
   SVGopen(server,640,480); 
   SVGrectanglePlein(server,20,20,80,80,0x000000,0x000000);
   SVGrectangleVide(server,10,10,100,100);
   SVGrectanglePlein(server,60,60,300,300,0xFF0000,0x0000FF);
   SVGline(server,20,30,400,400,0xFF0000);
   SVGlineLarge(server,10,10,500,400,0x00FF00,10);
   SVGcircleVide(server,400,150,100);
   SVGcirclePlein(server,300,200,100,0x0,0xFFFF00);
   SVGText(server,100,400,55,"Bonjour");
   SVGellipseVide(server,540,200,20,60);
   SVGellipsePlein(server,540,220,60,20,0x0,0xFFFFBB);
   SVGrectanglePleinArrondi(server,270,200,80,80,5,5,0xFFFF00,0xFF0000);
   SVGrectangleVideArrondi(server,100,10,100,100,5,5);
//   SVGpolyline(3,tab,0x000000,0xFF0000);
   SVGClose(server);
}
main() {
  httpd *server;
  int result;
  struct timeval timeout;

  signal(SIGPIPE, SIG_IGN);

  server = httpdCreate("10.57.63.233",8080);
  if (server == NULL) {
    perror("Impossible de creer le serveur\n");
    exit(1);
  }
  httpdSetAccessLog(server, stdout);
  httpdSetErrorLog(server, stdout);
// Comment transformer une demande de fichier en appel sous-programme :
  httpdAddCContent(server,"/","index.html",HTTP_TRUE,NULL,index_html);
  httpdAddCContent(server,"/","demo.svg",HTTP_TRUE,NULL,demo_svg);

// cette partie ne changera pas
  while(1) {
    timeout.tv_sec = 5;
    timeout.tv_usec = 0;
    result = httpdGetConnection(server, &timeout);
    if (result == 0){
	printf("Timeout ... \n");
	continue;
    }
    if (result < 0){
	printf("Error ... \n");
	continue;
    }
    if (httpdReadRequest(server)<0) {
      httpdEndRequest(server);
      continue;
    }
    httpdProcessRequest(server);
    httpdEndRequest(server);
  }  // fin du while
} // fin du main