diff --git a/common/worksheet_viewitem.cpp b/common/worksheet_viewitem.cpp index 0219929c48..c1e3d9426f 100644 --- a/common/worksheet_viewitem.cpp +++ b/common/worksheet_viewitem.cpp @@ -207,6 +207,14 @@ void WORKSHEET_VIEWITEM::draw( const WS_DRAW_ITEM_BITMAP* aItem, GAL* aGal ) con VECTOR2D position = aItem->GetPosition(); aGal->Translate( position ); WORKSHEET_DATAITEM_BITMAP* parent = static_cast<WORKSHEET_DATAITEM_BITMAP*>( aItem->GetParent() ); + + // When the image scale factor is not 1.0, we need to modify the actual scale + // as the image scale factor is similar to a local zoom + double img_scale = parent->m_ImageBitmap->GetScale(); + + if( img_scale != 1.0 ) + aGal->Scale( VECTOR2D( img_scale, img_scale ) ); + aGal->DrawBitmap( *parent->m_ImageBitmap ); aGal->Restore(); } diff --git a/eeschema/sch_painter.cpp b/eeschema/sch_painter.cpp index fdc0f318c3..830b3ea1fa 100644 --- a/eeschema/sch_painter.cpp +++ b/eeschema/sch_painter.cpp @@ -1350,8 +1350,10 @@ void SCH_PAINTER::draw( SCH_BITMAP *aBitmap, int aLayer ) // When the image scale factor is not 1.0, we need to modify the actual // as the image scale factor is similar to a local zoom - if( aBitmap->GetImageScale() != 1.0 ) - m_gal->Scale( VECTOR2D( aBitmap->GetImageScale(), aBitmap->GetImageScale() ) ); + double img_scale = aBitmap->GetImageScale(); + + if( img_scale != 1.0 ) + m_gal->Scale( VECTOR2D( img_scale, img_scale ) ); m_gal->DrawBitmap( *aBitmap->GetImage() );