Quantcast
Channel: Adobe Community : Popular Discussions - Photoshop Plugin and Companion App SDK
Viewing all articles
Browse latest Browse all 54282

BUG in getting layer's bounds

$
0
0

Hi all! This code contains weird bug:

 

    //

    // GET LAYER BOUNDS

    //

    error = PIUGetInfoByIndex(LayerCounter,classLayer,0,&descLayer,NULL);

    if (error) goto returnAutoError;

 

    error = sPSActionControl->StringIDToTypeID("bounds", &runtimeKeyID);

         if (error) goto returnAutoError;

 

    error = sPSActionControl->StringIDToTypeID("classRectangle", &runtimeClassID);

        if (error) goto returnAutoError;

 

    error = PIUGetSingleItemFromDescriptor(descLayer,runtimeKeyID,&descPosition,& descClass);

    if (error) goto returnAutoError;

 

    error = sPSActionDescriptor->GetFloat(descPosition, keyTop, &top);

    if (error) goto returnAutoError;

    error = sPSActionDescriptor->GetFloat(descPosition, keyLeft, &left);

    if (error) goto returnAutoError;

    error = sPSActionDescriptor->GetFloat(descPosition, keyBottom, &bottom);

    if (error) goto returnAutoError;

    error = sPSActionDescriptor->GetFloat(descPosition, keyRight, &right);

    if (error) goto returnAutoError;

 

I have a PSD with several layers, and this code returns different values that depend on layer order. This bug can not be reproduced if this is layer in layer group.

 

I'm generating XML:

 

<?xml version="1.0" encoding="UTF-8"?>

<LayerGroup name="tile" index="6">

          <Layer name="bg_tile@" top="222.000000" left="0.000000" bottom="542.000000" right="1070.000000" hasFile="bg_tile.png" index="2"/>

          <Layer name="bg_tile4!" top="222.000000" left="0.000000" bottom="713.000000" right="1070.000000" index="3"/>

          <Layer name="bg_tile3!" top="325.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="4"/>

          <Layer name="layer!" top="540.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="5"/>

</LayerGroup>

 

then change the order:

 

<?xml version="1.0" encoding="UTF-8"?>

<LayerGroup name="tile" index="6">

          <Layer name="bg_tile@" top="222.000000" left="0.000000" bottom="542.000000" right="1070.000000" hasFile="bg_tile.png" index="2"/>

          <Layer name="bg_tile4!" top="222.000000" left="0.000000" bottom="713.000000" right="1070.000000" index="3"/>

          <Layer name="layer!" top="325.000000" left="0.000000" bottom="860.000000" right="1070.000000" index="4"/>

          <Layer name="bg_tile3!" top="540.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="5"/>

</LayerGroup>

 

and one more time:

 

<?xml version="1.0" encoding="UTF-8"?>

<LayerGroup name="tile" index="6">

          <Layer name="bg_tile4!" top="325.000000" left="163.000000" bottom="713.000000" right="792.000000" index="2"/>

          <Layer name="layer!" top="325.000000" left="0.000000" bottom="860.000000" right="1070.000000" index="3"/>

          <Layer name="bg_tile3!" top="540.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="4"/>

          <Layer name="bg_tile@" top="222.000000" left="0.000000" bottom="1178.000000" right="1070.000000" hasFile="bg_tile.png" index="5"/>

</LayerGroup>

 

Can send you my PSD.

 

So, how I should get layer coords? I'm doing merge then calling the code in the beginning of the topic.


Viewing all articles
Browse latest Browse all 54282

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>