diff --git a/src/core/graphics.rs b/src/core/graphics.rs index 62c6d9b..5159921 100644 --- a/src/core/graphics.rs +++ b/src/core/graphics.rs @@ -320,10 +320,6 @@ impl Graphics { let mut y = y_max as usize - metrics.ascender as usize / 64; let height = (y_max - y_min) as usize; - println!("{} {}, {}", (-bbox.yMin) as usize, - metrics.y_ppem as usize, - metrics.descender); - let vec: Vec = vec![0; stride * height]; let mut img = ImgVec::new(vec, stride, height); @@ -349,6 +345,10 @@ impl Graphics { y = dest_y as usize; } + if height < dest_y as usize + glyph.bitmap.rows as usize { + height = dest_y as usize + glyph.bitmap.rows as usize; + } + let src = bitmap_to_imgref(&glyph.bitmap); let dest = img.sub_image_mut(dest_x as usize, dest_y as usize, @@ -370,10 +370,9 @@ impl Graphics { freetype::FT_Done_Face(ftface); }; - let vec = img.into_buf(); - println!("{}, {}x{}", vec.len(), stride, height); + let mut vec = img.into_buf(); + vec.truncate(stride * height); let img = ImgVec::new_stride(vec, width, height, stride); - img.sub_image(0, 0, width, height - y); TextRaster { img,