Wrong size of ScalableImageFigures (SVG) [message #153037] |
Tue, 02 October 2007 11:23  |
Eclipse User |
|
|
|
This is a multi-part message in MIME format.
--------------090909040509050605010109
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
Hi,
I'm having some issues with the ScalableImageFigure. I'm trying to
render SVG images, and it all went well until I used
setMaintainAspectRatio(false), because the user should be allowed to
change the ratio.
The images get still rendered, but they don't fill the Figure. Instead
they are drawn way too small in the upper left corner of the figure.
When I use pixel based images (like png), it all works well, but no
matter what I'm trying, I can't make it work with SVG.
When I resize the figure, the images's aspect ratio and size changes
accordingly, so it all seems to be correct, except for the size of the
RenderedImage.
I couldn't find any bugs related to this behaviour and don't really
understand what I'm doing wrong here. Any kind of information would be
welcome.
This is how I create the Figure:
public class NodeFigure
extends
org.eclipse.gmf.runtime.draw2d.ui.render.figures.ScalableIma geFigure
{
/**
* @generated NOT
*/
public NodeFigure(String path)
{
super(RenderedImageFactory.getInstance(FileLocator.find(ItLa ndscapeDiagramEditorPlugin.getInstance().getBundle(),
new Path(path), null)), true, true, true);
this.setMaintainAspectRatio(false);
createContents();
}
The first attached image shows the result of adding a figure with
setMaintainAspectRatio(true), the second with false. Both figures have
the same (default) size.
Best regards,
Johannes
PS: I'm running GMF 3.2.2
--------------090909040509050605010109
Content-Type: image/gif;
name="ratio_true.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="ratio_true.gif"
R0lGODlhvQBbAPf/AAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAz zAAz/wBmAABm
MwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDM zADM/wD/AAD/
MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMz zDMz/zNmADNm
MzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPM zDPM/zP/ADP/
MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYz zGYz/2ZmAGZm
M2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbM zGbM/2b/AGb/
M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkz zJkz/5lmAJlm
M5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnM zJnM/5n/AJn/
M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwz zMwz/8xmAMxm
M8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczM zMzM/8z/AMz/
M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8z zP8z//9mAP9m
M/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/M zP/M////AP//
M///Zv//mf//zP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAvQBbAAAI/gCvCRxIsKDB gwgTKlzIsKHD
hxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN mzhz6tzJsyfM
WUGCCh1KtKjRo0iTKl3KtKnTo2V0Au1AtarVq1izat3KtavXr2DDZg2iI+dU sWjTql3LNiwQ
HQ9wnm1Lt67du1ffPohrcy7ev4ADc9UBd2/fIIITKxasI8dewzT9Lp5MOS3h x5BlJkJcubNn
r40xZ4a5+bPp01ZDi+ZLmjPq151Vr45ZGq+FBxdgq7VgIbDs2S9rt73t4AAA AA+C6hZr4biM
3nd1zFiNOfjaC8SNH19hJRCra7OW/odtDuB7IBa46XqZTv2xyzJisT8ofhwA d+8Fw4v/Sv77
wEDPsbVee9WxBF9X8tG3XXf+HfTIfvwd1yBBrASI1oAEurfSgVglqN1xDDYU yAEBlGjiiSim
qOKKLLaoooQKnZeeV0FgmOFoJ3F4FXkg4hcRK0AGKeSQRBZp5JFIJtlQhdBt VeONoqmkI1Y6
IOKTSgDOeNWTUBaYI42zXKkSK1fkZhVZXUb5JVhRiZmSflRxmaaGJM0y5VeJ ODTLnnz26eef
gAYq6KCCTijRI2W41oGcc+IIkp1rBRGmQolA6NUFxhm60CyJJDqWF42qKZJk abV5EJyWboUA
AFY0xKmn/k6CGqqXjyraVisH2ZrqVQ+wqhCnumrF6KysfURqW2VMKtCdu1bV 3AoGvRosV0E4
RiytHR1bV57XMNssVRBYMCmwbKF5LbYbaWtXEJV+u1UZsLZV7bmicqSuu/he VYa19NKZ7rT5
Bhwnv/06etG9AuO7b8H1YtRuwhBXRQZ7DPt70cMRQzxxxQ1XhHHGAm/MMboT fQxyviKPvBeu
F5+sscqPzaCsxy4nnPLIMjtcc8gw75Vzyzuj3PMDOcxMUafwJq300kw37fTT UEct9dRUV+00
GUMXnVEivHXt9ddghy322GSXbfbZaKc9tqwqd2G0x2rHLffcdNcdN9sce8ER /td29+3334CH
jTfDeu8d+OGIJ4724P0WbrjikEeuOOPnOv645JhnXjflxFp+ueagh14256F6 /rnoqKduAelz
kiES36rHHjrrXVr5uuy4a077jbbfnvvvkO9OYO++A2984MJTR3zxxzdvd/Ki Lc+889TfPav0
01evvdnQ78XtSbBvLz7Z3WM/Uvjjp/819Oafr/7766fZvvvw17/7DCyvhL7Y Dqh4QNckSpED
uraiB/DmAf7rGgJUNEDeBBBFBrzNirrWvxT9z4EqiiD5boQ/l+wvbAhYQZFa 4UArFIlvAPDO
kFoBhNuUh0gktEAIT8ibAKhQSK0ggwtHyJsZEolv/gEwIZHKMLoM/awlHwRb CBHiwEAcJIbl
OYgOHwCtg+hAhq0ySAwDoKlrcI2KCLkiArKYnxo60SBJ7BrptBacsy3xIE18 Im+iaJApVtEg
YiQjQbbYxS/esSB5PJUZD5JG3nCOjW002xsNEkctzrGLdgwjFuVoAS4S8jZ/ JEggozVINBZx
NYhMZNkWWZBGFgSKkMSkJMdISUt6EoxWnCQnK3nGghRydaB8GxLdmMmBmHKP j5SiKmPJSkdW
so/DxKMsy0jLS24QM6YTJdlISZBfDgSVwoSlMot5yhoiU5uAXCZBZtFJW35y L12wyS27VhY4
3gZ7MXyALnVogRxIEgLRkIxn/gjCN3vGcnWCfKcz1/aYaJImbWRIqEITys6F KrSFvHGoQq8Y
UYnS0wI6sChELQAEi1LUAha9aEYt2lCJflRssjLoQesHP1CpdKUsVZ8XXkoa INj0pjjNqU53
ytOe+vSnQA2qUIfK0/m56ahITapSl8rUpjr1qVCNqlSnStWqWvWqWM2qVrfK 1a56lSABAQA7
--------------090909040509050605010109
Content-Type: image/gif;
name="ratio_false.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="ratio_false.gif"
R0lGODlhvQBbAPf/AP///1uy1VfJ+FSlyF6sy1vN/EuhxVitz1nN/FSmyFiq zFnK+F2qy2iv
zGPC6W2yz2XM9VKcutjq8cfp993y+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAvQBbAAAI7QABCBxIsKDB gwgTKlzIsKHD
hxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN mzhz6tzJs2fC
AAQOKGgAYYLPozkFFECwwEEECkij1hxgIAGDBxKkat3KtavXr2DDih1LtqzZ s2jTql3Ltq3b
t3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLl y5gza97MubPn
z6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx 48iTK1/OvLnz
5ygDAgA7
--------------090909040509050605010109--
|
|
|
Re: Wrong size of ScalableImageFigures (SVG) [message #153055 is a reply to message #153037] |
Tue, 02 October 2007 11:41   |
Eclipse User |
|
|
|
Originally posted by: snej_NO-SPAM_.esuark.de
Johannes Utzig wrote:
> When I resize the figure, the images's aspect ratio and size changes
> accordingly, so it all seems to be correct, except for the size of the
> RenderedImage.
Are your svg images smaller than your figure default size? If the figure
default size for example is 40x20 and your svg is ony 10x5 than you need
to change the
RenderedImageFactory.getInstance(<ImagePath>, true, true, true);
^^^^
to
RenderedImageFactory.getInstance(<ImagePath>, false, true, true);
^^^^^
This boolean is the "useDefaultImageSize" flag, if it is true, the size
of the figure doesn't matter, the svg will be rendered with its default
size. So if your svf is smaller than the default size of the figure it
results in this small image.
hth
jens
|
|
|
|
|
Re: Wrong size of ScalableImageFigures (SVG) [message #153218 is a reply to message #153071] |
Wed, 03 October 2007 06:45  |
Eclipse User |
|
|
|
Jens Krause schrieb:
> Are the bounds of the image equal to the bounds of the svg?
> What i mean is that some programs save svg with a little "border" and in
> my case the border was bigger on one side.
Hi Jens,
I created them with Inkscape and the SVGs are fine. No additional border
or anything. There should be no problem.
Best regards,
Johannes
|
|
|
Powered by
FUDForum. Page generated in 0.23351 seconds