Jump to content

Scale (percent) in the Transform panel?


Recommended Posts

When I place a graphic in a picture frame, e.g. an .afdesign file. I have in the Transform panel width and height, and the the X/Y coordinates. That's great.

In the context bar I see the percentage enlargement, it took me ages to even notice this.

I wish that scaling is also displayed in the transform panel. Is there a way to replace scaling?

By the way: why is dpi displayed on a pure vector graphic? There are no dots ;)

Link to comment
Share on other sites

I vaguely remember a feature request years ago for resetting an object to its initial 100% size (for every object, not placed resources only) – but, as far I know it did not make it yet.

DPI: Every Affinity document must have a certain resolution. Thus the 'reported' DPI of a placed resource is relative to its placed size within your current document resolution.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

1 hour ago, tersmuse said:

I wish that scaling is also displayed in the transform panel. Is there a way to replace scaling?

You can scale items using the Transform panel, as the width and height fields will accept expressions: https://affinity.help/publisher2/en-US.lproj/pages/Workspace/expressions.html

This works for all objects, not just Placed items in picture frames. But it is different from the function for Placed items as the original values are not remembered (as they are with the Resource Manager and the Context Toolbar).

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
    Laptop 2: Windows 11 Pro 24H2,  16GB memory, Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Oryon(TM) 12 Core CPU 4.01 GHz, Qualcomm(R) Adreno(TM) X1-85 GPU
iPad:  iPad Pro M1, 12.9": iPadOS 18.1.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sequoia 15.0.1

Link to comment
Share on other sites

1 hour ago, walt.farrell said:

But it is different from the function for Placed items as the original values are not remembered

Actually, an object is defined in its original size. Its current apparent size is the result of non-destructive transformations assigned to it and any containers in which it may be nested. For that reason, it is possible for the developers to provide us with a scale control in Transform panel for each of width and height, where 100% or 1.0 is the original size, for any type of object, just like they have done in context toolbar for only an Image or Document object.

Link to comment
Share on other sites

19 minutes ago, lepr said:

For that reason, it is possible for the developers to provide us with a scale control in Transform panel for each of width and height, where 100% or 1.0 is the original size, for any type of object, just like they have done in context toolbar for only an Image or Document object.

I didn't say it wouldn't be possible. I just said it doesn't exist now.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
    Laptop 2: Windows 11 Pro 24H2,  16GB memory, Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Oryon(TM) 12 Core CPU 4.01 GHz, Qualcomm(R) Adreno(TM) X1-85 GPU
iPad:  iPad Pro M1, 12.9": iPadOS 18.1.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sequoia 15.0.1

Link to comment
Share on other sites

22 hours ago, walt.farrell said:

I didn't say it wouldn't be possible. I just said it doesn't exist now.

Don't be so defensive. I didn't actually say you said something wouldn't be possible.

You did say "the original values are not remembered", which is wrong.

[deleted snarky comment]

Edited by lepr
Link to comment
Share on other sites

Thanks for the clarification, @lepr.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
    Laptop 2: Windows 11 Pro 24H2,  16GB memory, Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Oryon(TM) 12 Core CPU 4.01 GHz, Qualcomm(R) Adreno(TM) X1-85 GPU
iPad:  iPad Pro M1, 12.9": iPadOS 18.1.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sequoia 15.0.1

Link to comment
Share on other sites

1 hour ago, lepr said:

You did say "the original values are not remembered", which is wrong.

Interesting, then it would be just lacking the UI.  – What makes you assume / think / know that original values are remembered and stored with a document, as initial, 'original' size of every created or pasted object? (apart from "placed" objects and from the undo-history of a document or session)

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

1 hour ago, thomaso said:

What makes you assume / think / know that original values are remembered and stored with a document, as initial, 'original' size of every created or pasted object?

It seems unlikely that it is true for every object type but it would indeed be interesting to see if @lepr can somehow demonstrate that it is....

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

16 hours ago, thomaso said:

What makes you assume / think / know that original values are remembered and stored with a document, as initial, 'original' size of every created or pasted object?

I have no access to the software's source code and, clearly, it is not possible for me to prove my claim for "every [your emphasis] created or pasted object" that could exist.

My background in computer graphics and software development gives me insight that many users will not have. Constructing a test Affinity document and examining the code in an SVG export (without enabling 'flatten transforms'!) confirms my expectation.

 

Link to comment
Share on other sites

39 minutes ago, tersmuse said:

The answer to my question is: No, it's not possible to have percentage scaling in the Transform panel.

Percentage scaling [of original width/height] is possible. It just hasn't been made available by the developers (yet).

Edited by lepr
clarification
Link to comment
Share on other sites

16 minutes ago, lepr said:

Constructing a test Affinity document and examining the code in an SVG export (without enabling 'flatten transforms'!) confirms my expectation.

In case you refer to the part <svg width="100%" height="100%">, this "100" do not change to me in an exported SVG of a two-node curve scaled via entering *200% in the Transform Panel. I wonder if these two svg parameters rather would/could be used to scale during export (… like we can set a scaling value in the Print dialog).

If you refer to the part <g transform="matrix()>, it appears to reflect the last applied scaling value but not the initial, original value of object creation. Interestingly this parameter is maintained in an svg export even if the document got saved (or saved-as new file), closed and reopened (…with "Save History" disabled when saving).

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

5 minutes ago, thomaso said:

In case you refer to the part <svg width="100%" height="100%">,

I've not been referring to that.

 

7 minutes ago, thomaso said:

If you refer to the part <g transform="matrix()>, it appears to reflect the last applied scaling value but not the initial, original value of object creation.

You will find an object defined in its original size nested inside that container element (the nesting may be several levels deep).

Before you go further with snippets of code, if you are not familiar with the fundamentals of SVG then there is going to be much miscommunication between us.

Link to comment
Share on other sites

@thomaso

Attached is a contrived example in an AD1 document and the exported SVG.

Look at the path elements in the SVG. All contain the definition of nodes at their original location: d="M200,100L150,150L100,100L100,200L200,200L200,100Z"

transformations (v1-10-6).afdesign

transformations (v1-10-6).svg

 

Edit: there was a mislabeled object, so I've replaced the attachments with corrected versions.

Edited by lepr
correction
Link to comment
Share on other sites

People just need to look after the SVG spec transform definitions and look also take a look into the examples shown always in there ...

... or they can make their own little test drive, as for example ...

  1. Creating in ADe a red colored rect sized 600 x 400 px and save it as an ADe file
  2. Create another ADe main file (800x600 px) and embed that previously made rect file from (1) into that, size the embedded rect to let's say 500 x 400 px in there
  3. Export that stuff as a SVG and afterwards inspect the generated SVG code ...
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 800 600" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
    <g transform="matrix(0.833333,0,0,1,250.158,201.19)">
        <g id="rect_600x400.afdesign" transform="matrix(1,0,0,1,-300,-200)">
            <clipPath id="_clip1">
                <rect x="0" y="0" width="600" height="400"/>
            </clipPath>
            <g clip-path="url(#_clip1)">
                <g transform="matrix(0.999884,0,0,0.997122,1.14624,1.36794)">
                    <rect x="-1.146" y="-1.372" width="600.07" height="401.154" style="fill:rgb(199,58,58);"/>
                </g>
            </g>
        </g>
        <g id="rect_600x400.afdesign1" serif:id="rect_600x400.afdesign">
        </g>
    </g>
</svg>

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

54 minutes ago, v_kyr said:

People just need to look after the SVG spec transform definitions (…)

... or they can make their own little test drive,

It is not that simple. Before posting, I searched for "transform" and "matrix" on the following page, but none of the highlighted results in this list of "SVG elements" (a-z) matched the parameters I had previously found in 7 (seven) "own little test drives" and then pasted above.  https://www.w3schools.com/graphics/svg_reference.asp

Also, to know that the parameter "d" refers to initial properties of an object is not "just" something to look after (and doesn't appear in your example). As @lepr pointed out, unless one is familiar with SVG code there is much room for miscommunication. Nevertheless, I can imagine that certain, less skilled questions may feel unnecessary or disturbing to you.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

1 hour ago, thomaso said:

It is not that simple. Before posting, I searched for "transform" and "matrix" on the following page, but none of the highlighted results in this list of "SVG elements" (a-z) matched the parameters I had previously found in 7 (seven) "own little test drives" and then pasted above.

Honestly I don't know how you do or perform overall search, but using simple terms like "SVG" & "transform" in a Google search gives you a list of SVG references for that.

transform_search.jpg.e2f017168b7cfe82950be9bd38cb8063.jpg

1 hour ago, thomaso said:

Also, to know that the parameter "d" refers to initial properties of an object is not "just" something to look after (and doesn't appear in your example). As @lepr pointed out, unless one is familiar with SVG code there is much room for miscommunication.

Initial properties? - The "d" attribute defines a path to be drawn (or expressed in another way, the paths which vector curves are drawn from). And related to that a path definition is a list of path commands where each command is composed of a command letter and numbers that represent the command parameters.

Why should it appear in my simple example when I just used a basic SVG rect shape (same as a rectangle shape in ADe) instead of curves?

My advice for such SVG things is, to always take a look at the W3C (do not confuse that with w3schools) SVG spec v1.1 since Affinity just can generate and parse a subset of that. The other good source for everything about SVG, is Mozillas resource for Developers. - So ...

 

1 hour ago, thomaso said:

Nevertheless, I can imagine that certain, less skilled questions may feel unnecessary or disturbing to you.

Absolutely. - Questions like these are boring, because people don't really deal with SVG, don't understand it, let alone really want to learn it.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

9 minutes ago, v_kyr said:

Honestly I don't know how you do or perform overall search,

If you want to know: I started the search with the found snippet in my first 3 test files that obviously referred to scaling and occurred in every file. In the resulting search list I chose the first which did not say "how to" or referred to website design / CSS but was titled as "SVG Reference". From that page I continued the search via the browser page search option as I noticed this page lists keywords from a-z (v) on one page which let me assume it will contain further "reference" to e.g. "transform" or "matrix" on the same page.

Possibly now you would argue, before I picked / read that page I should have "just" searched for the term "element" to be able to know if "transform" or "matrix" are elements or properties or expressions or attributes or commands or … and differ from terms like e.g. "style" which concerns a visual appearance, e.g. colour, without being an attribute … etc. … and, in short, that I should be an expert before asking a question to avoid triggering you to response.

searchsvg1.thumb.jpg.e44da6081ec2fe508973812167573e68.jpg

33 minutes ago, v_kyr said:

Absolutely. - Questions like this are boring because people don't really deal with SVG, don't understand it, let alone really want to learn it.

Would it help if you ignore these questions so as not to be bored, disturbed or annoyed and possibly feel initiated or forced to invest your time?

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

I suppose I am just curious about how this would work but can anyone tell me the original size of the object I created & modified in AD V2 & exported to this original size test.svg file, the original object type, & how they determined that?

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

2 hours ago, R C-R said:

I suppose I am just curious about how this would work but can anyone tell me the original size of the object I created & modified in AD V2 & exported to this original size test.svg file, the original object type, & how they determined that?

My guess is that is a trick question. Various Affinity proprietary object types will be exported as generic paths when exported to SVG, so one cannot say what was in the Affinity document with any certainty.

In case it escaped your notice, the discussion has never been about reconstructing an Affinity document from an SVG.

Another thread heading for the sewer.

Link to comment
Share on other sites

4 hours ago, thomaso said:

If you want to know:

Not really, as I used that more as a common phrase! - But in your above search sample about SVG height + width I can see among the listed results "developer.mozilla.org" which is among one of the best resources for SVG related stuff.

4 hours ago, thomaso said:

Would it help if you ignore these questions so as not to be bored, disturbed or annoyed and possibly feel initiated or forced to invest your time?

Sure, but then I fear that people won't do SVG things the right way and also won't learn something for the future, or that somebody else is telling them then absolute nonsense!

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

3 hours ago, R C-R said:

I suppose I am just curious about how this would work but can anyone tell me the original size of the object I created & modified in AD V2 & exported to this original size test.svg file, the original object type, & how they determined that?

Find out yourself, all the needed informations are already on the net! - So as a starting point for this look after ...

... and try to understand what that tells you on how things are handled and done (see also the always applied examples there).

In short ...

Quote

 

Doc = x/y = 0/0  w/h = 600/600

PATH:

M move   absolute    x = 295.118 y = 118.439
L lineto absolute    x = 201.656 y = 151.085
L lineto absolute    x = 106.784 y = 125.439
L lineto absolute    x = 106.784 y = 293.754
L lineto absolute    x = 295.118 y = 293.754
L lineto absolute    x = 295.118 y = 125.439
Z close path

 

Now apply the transform matrix for the above x/y values, in order to get the new coordinate system x/y values for those ...

matrix_calc.jpg.216e539644ee7885b214bc308f202fc3.jpg

... finally put the new coordinate values in relation to the overall doc dimensions, in order to find the smallest and biggest x/y value pairs, which will tell you by derivation the overall size.

BTW your example is a silly one, as the whole is much easier for you to understand and follow, when you use integer x/y values and easier shapes like a rect or circle.

Or even easier for you, just use MacSVG in order to inspect and determine the whole.

macsvg.jpg.ecf29215e1a69c629cca5fd26460a6c1.jpg

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

47 minutes ago, lepr said:

My guess is that is a trick question. Various Affinity proprietary object types will be exported as generic paths when exported to SVG, so one cannot say what was in the Affinity document with any certainty.

In case it escaped your notice, the discussion has never been about reconstructing an Affinity document from an SVG.

Another thread heading for the sewer.

From what I can tell, this topic originally was just about adding a scaling item to the transform panel, but somewhere along the way it got sidetracked into a discussion about if the original width and/or height of possibly every object created or placed & subsequently edited was preserved. The SVG stuff was the result of that, offered as a proof of sorts that it is.

So all I wanted to know was if it was possible to deduce the properties of the original, pre-edit objects from an SVG export, & if so, how. It wasn't a trick question, just one I thought I might learn something from if it could be answered.

Sorry if that bothers you.

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

9 minutes ago, v_kyr said:

BTW your example is a silly one, as the whole is much easier for you to understand and follow, when you use integer x/y values and easier shapes like a rect or circle.

For what very little it is worth, I started with a rectangle object & then transformed it to integer values. But before exporting it, I converted it to curves, added a node, & moved it to ceate the shape you see.

This was not an attempt to trick anyone or muddy the waters. I just thought it would be a good test case.

Again, sorry if any of this bothers anybody. It was not my intent.

All 3 1.10.8, & all 3 V2.5.6 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
A
ll 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.