On May 10, 2008, at 5:10 PM, Steven Mullins wrote:

> I need to render some utf-8 text with pango to a PNG.  I can do  
> this, but not
> without flashing the image on the screen for an instant to draw the  
> pixmap.
> does anyone know how to do this without displaying the image to the  
> screen?
> A short example would be great.

How's this?  Size is hardcoded, that's for you to figure out.  The  
font and text come straight from your example code.


#!/usr/bin/perl -w
use strict;
use Gtk2;
use Cairo;

my $surface = Cairo::ImageSurface->create ('argb32', 300, 200);
my $cr = Cairo::Context->create ($surface);

$cr->rectangle (0, 0, 300, 300);
$cr->set_source_rgb (1, 1, 1);
$cr->fill;

my $pango_layout = Gtk2::Pango::Cairo::create_layout ($cr);
my $font_desc = Gtk2::Pango::FontDescription->from_string("Ezra SIL  
26");
$pango_layout->set_font_description($font_desc);
$pango_layout->set_markup ("Tango Pango
\n 
&#x05D9 
;&#x05B4 
;שְׂרָאֵל
אֱלֹהִים");

$cr->set_source_rgb (0, 0, 0);
Gtk2::Pango::Cairo::show_layout ($cr, $pango_layout);

$cr->show_page ();

$surface->write_to_png ('output.png');

__END__



--
So this new album took us quite a while, to get it together, to find a  
title and things like that - and we were travelling quite a bit - we  
made a few sort of gestures in the East, and a few gestures in the  
West, and then we got thrown out because of our gestures - this is  
something that we decided was an apt title for a thing that's called  
'The Song Remains The Same'.
   -- Robert Plant, rambling to introduce a song

_______________________________________________
gtk-perl-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to