summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2008-03-10 04:45:21 +0000
committerJames Bursa <james@netsurf-browser.org>2008-03-10 04:45:21 +0000
commitd784d2dccd8962d6f6b02767977d741cdfa50061 (patch)
tree5412da40d750fe1df96dd7ac4e0a27d3a19fb6f8
parent7b91fce804524d4f868f7f08fcbfc78402e0f59f (diff)
downloadlibsvgtiny-d784d2dccd8962d6f6b02767977d741cdfa50061.tar.gz
libsvgtiny-d784d2dccd8962d6f6b02767977d741cdfa50061.tar.bz2
Add scale argument to svgtiny_test and svgtiny_display.
svn path=/trunk/libsvgtiny/; revision=3915
-rwxr-xr-xsvgtiny_display2
-rw-r--r--svgtiny_test.c42
2 files changed, 27 insertions, 17 deletions
diff --git a/svgtiny_display b/svgtiny_display
index 3fa4926..eb6bc98 100755
--- a/svgtiny_display
+++ b/svgtiny_display
@@ -1,3 +1,3 @@
set -e
make
-bin/svgtiny_test $1 | convert mvg:- png:- | display -
+bin/svgtiny_test $1 $2 | convert mvg:- png:- | display -
diff --git a/svgtiny_test.c b/svgtiny_test.c
index be1a4eb..2a2c862 100644
--- a/svgtiny_test.c
+++ b/svgtiny_test.c
@@ -15,6 +15,7 @@
int main(int argc, char *argv[])
{
FILE *fd;
+ float scale = 1.0;
struct stat sb;
char *buffer;
size_t size;
@@ -22,8 +23,8 @@ int main(int argc, char *argv[])
struct svgtiny_diagram *diagram;
svgtiny_code code;
- if (argc != 2) {
- fprintf(stderr, "Usage: %s FILE\n", argv[0]);
+ if (argc != 2 && argc != 3) {
+ fprintf(stderr, "Usage: %s FILE [SCALE]\n", argv[0]);
return 1;
}
@@ -55,6 +56,13 @@ int main(int argc, char *argv[])
fclose(fd);
+ /* read scale argument */
+ if (argc == 3) {
+ scale = atof(argv[2]);
+ if (scale == 0)
+ scale = 1.0;
+ }
+
/* create svgtiny object */
diagram = svgtiny_create();
if (!diagram) {
@@ -90,7 +98,8 @@ int main(int argc, char *argv[])
free(buffer);
- printf("viewbox 0 0 %i %i\n", diagram->width, diagram->height);
+ printf("viewbox 0 0 %g %g\n",
+ scale * diagram->width, scale * diagram->height);
for (unsigned int i = 0; i != diagram->shape_count; i++) {
if (diagram->shape[i].fill == svgtiny_TRANSPARENT)
@@ -101,7 +110,8 @@ int main(int argc, char *argv[])
printf("stroke none ");
else
printf("stroke #%.6x ", diagram->shape[i].stroke);
- printf("stroke-width %i ", diagram->shape[i].stroke_width);
+ printf("stroke-width %g ",
+ scale * diagram->shape[i].stroke_width);
if (diagram->shape[i].path) {
printf("path '");
for (unsigned int j = 0;
@@ -109,8 +119,8 @@ int main(int argc, char *argv[])
switch ((int) diagram->shape[i].path[j]) {
case svgtiny_PATH_MOVE:
printf("M %g %g ",
- diagram->shape[i].path[j + 1],
- diagram->shape[i].path[j + 2]);
+ scale * diagram->shape[i].path[j + 1],
+ scale * diagram->shape[i].path[j + 2]);
j += 3;
break;
case svgtiny_PATH_CLOSE:
@@ -119,18 +129,18 @@ int main(int argc, char *argv[])
break;
case svgtiny_PATH_LINE:
printf("L %g %g ",
- diagram->shape[i].path[j + 1],
- diagram->shape[i].path[j + 2]);
+ scale * diagram->shape[i].path[j + 1],
+ scale * diagram->shape[i].path[j + 2]);
j += 3;
break;
case svgtiny_PATH_BEZIER:
printf("C %g %g %g %g %g %g ",
- diagram->shape[i].path[j + 1],
- diagram->shape[i].path[j + 2],
- diagram->shape[i].path[j + 3],
- diagram->shape[i].path[j + 4],
- diagram->shape[i].path[j + 5],
- diagram->shape[i].path[j + 6]);
+ scale * diagram->shape[i].path[j + 1],
+ scale * diagram->shape[i].path[j + 2],
+ scale * diagram->shape[i].path[j + 3],
+ scale * diagram->shape[i].path[j + 4],
+ scale * diagram->shape[i].path[j + 5],
+ scale * diagram->shape[i].path[j + 6]);
j += 7;
break;
default:
@@ -141,8 +151,8 @@ int main(int argc, char *argv[])
printf("' ");
} else if (diagram->shape[i].text) {
printf("text %g %g '%s' ",
- diagram->shape[i].text_x,
- diagram->shape[i].text_y,
+ scale * diagram->shape[i].text_x,
+ scale * diagram->shape[i].text_y,
diagram->shape[i].text);
}
printf("\n");