63 return "application/pdf";
67 return "application/postscript";
71 return "image/svg+xml";
75 return "application/xml";
94 double width = (b.
UR.
x-b.
LL.
x);
95 double height = (b.
UR.
y-b.
LL.
y);
96 double originx = (b.
UR.
x+b.
LL.
x - width)/2;
97 double originy = (b.
UR.
y+b.
LL.
y + height)/2;
102 gvputs(job,
"<image xlink:href=\"");
104 bool written =
false;
115 const int fd = fileno(us->
f);
117 if (fstat(fd, &st) < 0) {
121#ifdef HAVE_SYS_MMAN_H
122 us->
data = mmap(0, us->
datasize, PROT_READ, MAP_PRIVATE, fd, 0);
123 if (us->
data == MAP_FAILED) {
140#ifdef HAVE_SYS_MMAN_H
147 gvprintf(job,
"data:%s;base64,%.*s", mime, (
int)encoded_size,
163 gvprintf (job,
"\" width=\"%gpx\" height=\"%gpx\" preserveAspectRatio=\"xMidYMid meet\" x=\"%g\" y=\"%g\"",
164 height, width, originx, -originy);
165 gvprintf (job,
" transform=\"rotate(%d %g %g)\"",
170 gvprintf (job,
"\" width=\"%gpx\" height=\"%gpx\" preserveAspectRatio=\"xMinYMin meet\" x=\"%g\" y=\"%g\"",
171 width, height, originx, -originy);
189 double style_val = 0.0;
193 int forward_arrow = 0;
194 int backward_arrow = 0;
202 gvprintf(job,
"%d %d %d %d %d %d %d %d %d %.1f %d %d %d %d %d %d\n %d %s\n",
203 object_code, sub_type, line_style, thickness, pen_color,
204 fill_color, depth, pen_style, area_fill, style_val, join_style,
205 cap_style, radius, forward_arrow, backward_arrow, npoints,
207 gvprintf(job,
" %.0f %.0f %.0f %.0f %.0f %.0f %.0f %.0f %.0f %.0f\n",
225 assert(job->
obj->
u.
n);
228 gvprintf(job,
" appearance Appearance {\n");
229 gvprintf(job,
" material Material {\n");
230 gvprintf(job,
" ambientIntensity 0.33\n");
231 gvprintf(job,
" diffuseColor 1 1 1\n");
233 gvprintf(job,
" texture ImageTexture { url \"%s\" }\n", us->
name);
240#ifdef HAVE_SYS_MMAN_H
276 us->
datasize = (size_t)statbuf.st_size;
277#ifdef HAVE_SYS_MMAN_H
278 us->
data = mmap(0, us->
datasize, PROT_READ, MAP_PRIVATE, fd, 0);
279 if (us->
data == MAP_FAILED)
284 read(fd, us->
data, statbuf.st_size);
297 gvprintf(job,
"gsave %g %g translate newpath\n",
298 b.
LL.
x - (
double)(us->
x), b.
LL.
y - (
double)(us->
y));
318 if ((shape = us->
data)) {
327 for (i = 0; i < 4; i++)
328 gvprintf(job,
"%g %g ", AF[i].x, AF[i].y);
329 gvprintf(job,
"%g %g ", AF[0].x, AF[0].y);
333 for (i = 0; i < 4; i++)
334 gvprintf(job,
"%g %g ", AF[i].x, AF[i].y);
335 gvprintf(job,
"%g %g ", AF[0].x, AF[0].y);
344 gvprintf (job,
"image create photo \"photo_%s\" -file \"%s\"\n",
346 gvprintf (job,
"$c create image %.2f %.2f -image \"photo_%s\"\n",
char * gv_base64(const unsigned char *source, size_t size)
size_t gv_base64_size(size_t source_size)
void core_loadimage_xdot(GVJ_t *, usershape_t *, boxf, bool)
void gvusershape_file_release(usershape_t *us)
bool gvusershape_file_access(usershape_t *us)
int gvputs(GVJ_t *job, const char *s)
void gvprintf(GVJ_t *job, const char *format,...)
static void core_loadimage_ps(GVJ_t *job, usershape_t *us, boxf b, bool filled)
static gvloadimage_engine_t engine_ps
static void core_loadimage_pslib(GVJ_t *job, usershape_t *us, boxf b, bool filled)
static gvloadimage_engine_t engine_null
static gvloadimage_engine_t engine_pslib
static void ps_freeimage(usershape_t *us)
static void core_loadimage_svg(GVJ_t *job, usershape_t *us, boxf b, bool filled)
static gvloadimage_engine_t engine_svg
static gvloadimage_engine_t engine_vrml
static gvloadimage_engine_t engine_xdot
static void core_loadimage_fig(GVJ_t *job, usershape_t *us, boxf bf, bool filled)
static gvloadimage_engine_t engine_fig
gvplugin_installed_t gvloadimage_core_types[]
static void core_loadimage_tk(GVJ_t *job, usershape_t *us, boxf b, bool filled)
shape_desc * find_user_shape(char *name)
static gvloadimage_engine_t engine_tk
static void core_loadimage_null(GVJ_t *gvc, usershape_t *us, boxf b, bool filled)
static const char * mime_type(imagetype_t file_type)
static void core_loadimage_vrml(GVJ_t *job, usershape_t *us, boxf b, bool filled)
void epsf_emit_body(GVJ_t *job, usershape_t *us)
gvplugin_active_render_t render
void(* datafree)(usershape_t *us)