Scale image in MetaPost, maintaining aspect ratio
Hi! How to scale an image in MetaPost, maintaining the aspect ratio (without specifying the height explicitly)? Example: \setupexternalfigures [location=default] \starttext \externalfigure [cow][width=5cm] \startMPcode draw externalfigure "cow" scaled 5cm; \stopMPcode \stoptext Marco
On Sat, 7 Jul 2018 20:58:40 +0200
Marco Patzer
Hi!
How to scale an image in MetaPost, maintaining the aspect ratio (without specifying the height explicitly)?
Example:
\setupexternalfigures [location=default] \starttext \externalfigure [cow][width=5cm]
\startMPcode draw externalfigure "cow" scaled 5cm; \stopMPcode \stoptext
For "historic" reasons, draw externalfigure "cow" scaled 5cm ; normalizes the figure to a square. This will not be changed as it is a very old feature of MetaFun. The solution is draw rawtextext("\externalfigure[cow]") xsized 5cm ; where one can use xsized, ysized or xysized (taking a pair). Alan
On Sat, 7 Jul 2018 14:27:38 -0600
Alan Braslau
For "historic" reasons, draw externalfigure "cow" scaled 5cm ; normalizes the figure to a square. This will not be changed as it is a very old feature of MetaFun.
The solution is draw rawtextext("\externalfigure[cow]") xsized 5cm ; where one can use xsized, ysized or xysized (taking a pair).
That works indeed. Thanks. Marco
On 7/8/2018 1:45 AM, Marco Patzer wrote:
On Sat, 7 Jul 2018 14:27:38 -0600 Alan Braslau
wrote: For "historic" reasons, draw externalfigure "cow" scaled 5cm ; normalizes the figure to a square. This will not be changed as it is a very old feature of MetaFun.
The solution is draw rawtextext("\externalfigure[cow]") xsized 5cm ; where one can use xsized, ysized or xysized (taking a pair).
That works indeed. Thanks. draw figure "...." ...
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On Sun, 8 Jul 2018 10:39:52 +0200
Hans Hagen
On 7/8/2018 1:45 AM, Marco Patzer wrote:
On Sat, 7 Jul 2018 14:27:38 -0600 Alan Braslau
wrote: For "historic" reasons, draw externalfigure "cow" scaled 5cm ; normalizes the figure to a square. This will not be changed as it is a very old feature of MetaFun.
The solution is draw rawtextext("\externalfigure[cow]") xsized 5cm ; where one can use xsized, ysized or xysized (taking a pair).
That works indeed. Thanks. draw figure "...." ...
That's what I was looking for. Thanks. Marco
On Sun, 8 Jul 2018 10:39:52 +0200 Hans Hagen
wrote: On 7/8/2018 1:45 AM, Marco Patzer wrote:
On Sat, 7 Jul 2018 14:27:38 -0600 Alan Braslau
wrote: For "historic" reasons, draw externalfigure "cow" scaled 5cm ; normalizes the figure to a square. This will not be changed as it is a very old feature of MetaFun.
The solution is draw rawtextext("\externalfigure[cow]") xsized 5cm ; where one can use xsized, ysized or xysized (taking a pair).
That works indeed. Thanks. draw figure "...." ...
That's what I was looking for. Thanks.
On 7/8/2018 11:02 AM, Marco Patzer wrote: the "externalfigure" variant is an old one that had to deal with dimensions in a way that avoids overflows in a future context (read luatex 1.09+) we go one-pass-mp so we can have a different approach (i never wanted to add a ton of code for images) so there externalfigure will scale proportionally too Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On Sun, 8 Jul 2018 11:21:55 +0200
Hans Hagen
the "externalfigure" variant is an old one that had to deal with dimensions in a way that avoids overflows
in a future context (read luatex 1.09+) we go one-pass-mp so we can have a different approach (i never wanted to add a ton of code for images) so there externalfigure will scale proportionally too
ConTeXt running on the luatex experimental branch under development indeed works with one-pass-MP calculations as opposed to the two-pass mechanism that is standard today. For documents with extensive and complicated MP graphics, this yields a huge gain. Hans is at present working out all side-effects (such as recursive MP/TeX/lua calls) and is cleaning up some old ways of doing things that date from mkii. This might seem somewhat minor but is really exciting for those who use a lot of graphics and MetaPost effects. Alan
On 7/7/2018 8:58 PM, Marco Patzer wrote:
Hi!
How to scale an image in MetaPost, maintaining the aspect ratio (without specifying the height explicitly)?
Example:
\setupexternalfigures [location=default] \starttext \externalfigure [cow][width=5cm]
\startMPcode draw externalfigure "cow" scaled 5cm; \stopMPcode \stoptext it's all in the metafun manual
xsized 5cm ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On Sat, 7 Jul 2018 22:27:51 +0200
Hans Hagen
On 7/7/2018 8:58 PM, Marco Patzer wrote:
Hi!
How to scale an image in MetaPost, maintaining the aspect ratio (without specifying the height explicitly)?
Example:
\setupexternalfigures [location=default] \starttext \externalfigure [cow][width=5cm]
\startMPcode draw externalfigure "cow" scaled 5cm; \stopMPcode \stoptext it's all in the metafun manual
No doubts about that. It's more a matter of knowing what to search for.
xsized 5cm
I tried it, same result - square image: draw externalfigure "cow" xsized 5cm; As Alan mentioned including the image with textext() works. Not as elegant, but it gets the job done. Marco
participants (3)
-
Alan Braslau
-
Hans Hagen
-
Marco Patzer