tiny cleanups

see https://github.com/jcupitt/libvips/pull/327

- small layout changes
- rename @linespacing as @spacing
- add ChangeLog notes and gtk-doc notes
- fix text arg priority
This commit is contained in:
John Cupitt 2015-09-20 11:08:44 +01:00
parent 1cdeefe955
commit 956e2f5cdf
2 changed files with 22 additions and 15 deletions

View File

@ -18,6 +18,7 @@
- add vips_hist_entropy()
- vips_log(), vips_log10() are zero-avoiding
- better overlap handling for dzsave, thanks robclouth
- add @spacing option to vips_text()
7/5/15 started 8.0.3
- dzsave and tif pyr write could fail for some image dimensions, thanks Jonas

View File

@ -12,6 +12,8 @@
* - gtkdoc
* 3/6/13
* - rewrite as a class
* 20/9/15 leiyangyou
* - add @spacing
*/
/*
@ -64,7 +66,7 @@ typedef struct _VipsText {
char *text;
char *font;
int width;
int linespacing;
int spacing;
VipsAlign align;
int dpi;
@ -104,7 +106,7 @@ vips_text_dispose( GObject *gobject )
static PangoLayout *
text_layout_new( PangoContext *context,
const char *text, const char *font, int width, int linespacing,
const char *text, const char *font, int width, int spacing,
VipsAlign align, int dpi )
{
PangoLayout *layout;
@ -121,8 +123,8 @@ text_layout_new( PangoContext *context,
if( width > 0 )
pango_layout_set_width( layout, width * PANGO_SCALE );
if (linespacing > 0)
pango_layout_set_spacing( layout, linespacing * PANGO_SCALE);
if( spacing > 0 )
pango_layout_set_spacing( layout, spacing * PANGO_SCALE );
switch( align ) {
case VIPS_ALIGN_LOW:
@ -184,7 +186,7 @@ vips_text_build( VipsObject *object )
if( !(text->layout = text_layout_new( text->context,
text->text, text->font,
text->width, text->linespacing, text->align, text->dpi )) ) {
text->width, text->spacing, text->align, text->dpi )) ) {
g_mutex_unlock( vips_text_lock );
return( -1 );
}
@ -284,39 +286,39 @@ vips_text_class_init( VipsTextClass *class )
G_STRUCT_OFFSET( VipsText, text ),
NULL );
VIPS_ARG_STRING( class, "font", 4,
VIPS_ARG_STRING( class, "font", 5,
_( "Font" ),
_( "Font to render width" ),
VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsText, font ),
NULL );
VIPS_ARG_INT( class, "width", 4,
VIPS_ARG_INT( class, "width", 6,
_( "Width" ),
_( "Maximum image width in pixels" ),
VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsText, width ),
0, 1000000, 0 );
VIPS_ARG_ENUM( class, "align", 5,
VIPS_ARG_ENUM( class, "align", 7,
_( "Align" ),
_( "Align on the low, centre or high coordinate edge" ),
_( "Align on the low, centre or high edge" ),
VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsText, align ),
VIPS_TYPE_ALIGN, VIPS_ALIGN_LOW );
VIPS_ARG_INT( class, "dpi", 4,
VIPS_ARG_INT( class, "dpi", 8,
_( "DPI" ),
_( "DPI to render at" ),
VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsText, dpi ),
1, 1000000, 72 );
VIPS_ARG_INT( class, "linespacing", 4,
_( "Line Spacing" ),
_( "Line Spacing to render at" ),
VIPS_ARG_INT( class, "spacing", 9,
_( "Spacing" ),
_( "Line spacing" ),
VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsText, linespacing ),
G_STRUCT_OFFSET( VipsText, spacing ),
0, 1000000, 0 );
}
@ -343,6 +345,7 @@ vips_text_init( VipsText *text )
* @width: render within this many pixels across
* @alignment: left/centre/right alignment
* @dpi: render at this resolution
* @spacing: space lines by this in points
*
* Draw the string @text to an image. @out is a one-band 8-bit
* unsigned char image, with 0 for no text and 255 for text. Values inbetween
@ -357,11 +360,14 @@ vips_text_init( VipsText *text )
* @width is the maximum number of pixels across to draw within. If the
* generated text is wider than this, it will wrap to a new line. In this
* case, @alignment can be used to set the alignment style for multi-line
* text. 0 means left-align, 1 centre, 2 right-align.
* text.
*
* @dpi sets the resolution to render at. "sans 12" at 72 dpi draws characters
* approximately 12 pixels high.
*
* @spacing sets the line spacing, in points. It would typicallly be something
* like font size times 1.2.
*
* See also: vips_xyz(), vips_text(), vips_gaussnoise().
*
* Returns: 0 on success, -1 on error