add page-height to pdfload
This commit is contained in:
parent
25dd60c781
commit
8c84e6cc34
38
TODO
38
TODO
@ -1,6 +1,42 @@
|
|||||||
- all toilet roll loaders need to set "page-height"
|
- all toilet roll loaders need to set "page-height"
|
||||||
|
|
||||||
magick, pdf and tiff need to use the same page/n interface
|
magick, pdf, gif and tiff need to use the same page/n interface
|
||||||
|
|
||||||
|
magick: has page and all_frames
|
||||||
|
|
||||||
|
deprecate all_frames, add @n, make all_frames set n == -1
|
||||||
|
|
||||||
|
do we allow page + all_frames?
|
||||||
|
|
||||||
|
need to check magick2vips.c and magick7load.c
|
||||||
|
|
||||||
|
add page-height
|
||||||
|
|
||||||
|
magick6
|
||||||
|
|
||||||
|
john@kiwi:~/pics$ vips magickload nipguide.pdf x.v --all-frames
|
||||||
|
john@kiwi:~/pics$ vipsheader x.v
|
||||||
|
x.v: 595x842 ushort, 2 bands, grey16, magickload
|
||||||
|
|
||||||
|
argh
|
||||||
|
|
||||||
|
magick7
|
||||||
|
|
||||||
|
$ vips magickload nipguide.pdf x.v --all-frames
|
||||||
|
$ vipsheader x.v
|
||||||
|
x.v: 595x48836 ushort, 4 bands, rgb16, magickload
|
||||||
|
|
||||||
|
phew
|
||||||
|
|
||||||
|
gifload has page, but no n
|
||||||
|
|
||||||
|
add an n param
|
||||||
|
|
||||||
|
add page-height
|
||||||
|
|
||||||
|
pdfload has page, n, allows n == -1, sets page-height
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -308,6 +308,7 @@ vips_foreign_load_magick_buffer_init( VipsForeignLoadMagickBuffer *buffer )
|
|||||||
* Optional arguments:
|
* Optional arguments:
|
||||||
*
|
*
|
||||||
* * @all_frames: %gboolean, load all frames in sequence
|
* * @all_frames: %gboolean, load all frames in sequence
|
||||||
|
* * @page: %gint, load from this page
|
||||||
* * @density: string, canvas resolution for rendering vector formats like SVG
|
* * @density: string, canvas resolution for rendering vector formats like SVG
|
||||||
*
|
*
|
||||||
* Read in an image using libMagick, the ImageMagick library. This library can
|
* Read in an image using libMagick, the ImageMagick library. This library can
|
||||||
@ -355,6 +356,7 @@ vips_magickload( const char *filename, VipsImage **out, ... )
|
|||||||
* Optional arguments:
|
* Optional arguments:
|
||||||
*
|
*
|
||||||
* * @all_frames: %gboolean, load all frames in sequence
|
* * @all_frames: %gboolean, load all frames in sequence
|
||||||
|
* * @page: %gint, load from this page
|
||||||
* * @density: string, canvas resolution for rendering vector formats like SVG
|
* * @density: string, canvas resolution for rendering vector formats like SVG
|
||||||
*
|
*
|
||||||
* Read an image memory block using libMagick into a VIPS image. Exactly as
|
* Read an image memory block using libMagick into a VIPS image. Exactly as
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
* - from openslideload.c
|
* - from openslideload.c
|
||||||
* 12/5/16
|
* 12/5/16
|
||||||
* - add @n ... number of pages to load
|
* - add @n ... number of pages to load
|
||||||
|
* 23/11/16
|
||||||
|
* - set page-height, if we can
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -309,6 +311,17 @@ vips_foreign_load_pdf_header( VipsForeignLoad *load )
|
|||||||
top += pdf->pages[i].height;
|
top += pdf->pages[i].height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If all pages are the same size, we can tag this as a toilet roll
|
||||||
|
* image and tiffsave will be able to save it as a multipage tiff.
|
||||||
|
*/
|
||||||
|
for( i = 1; i < pdf->n; i++ )
|
||||||
|
if( pdf->pages[i].width != pdf->pages[0].width ||
|
||||||
|
pdf->pages[i].height != pdf->pages[0].height )
|
||||||
|
break;
|
||||||
|
if( i == pdf->n )
|
||||||
|
vips_image_set_int( load->out,
|
||||||
|
VIPS_META_PAGE_HEIGHT, pdf->pages[0].height );
|
||||||
|
|
||||||
vips_foreign_load_pdf_set_image( pdf, load->out );
|
vips_foreign_load_pdf_set_image( pdf, load->out );
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
|
Loading…
Reference in New Issue
Block a user