Yes, you almost have it. The only problem is that once you do --pattern, it's 
the constant image that's on top and will be resized. I think you can do it 
like this:

./oiiotool /Volumes/Build/test/test-75.jpg --pattern 
constant:color=0.2,0.2,0.2,1.0 "{TOP.width}x{TOP.height}" "{TOP.nchannels}" 
--swap --resize “{TOP.width-2*40}x{TOP.height-2*40}” --swap --paste "+40+40” -o 
/Volumes/Build/test/test_frame.png

It's a little ungainly, but basically --swap changes the relative order of the 
top two items on the stack. So you are making the resize apply to the original 
image, and then switching them back again before the paste.


> On Oct 17, 2021, at 12:07 PM, Mikael Sundell <[email protected]> wrote:
> 
> Just tried it, works! :-)
> 
> Is it possible to resize before paste and preserve the original width/ height 
> of the image? So keeping the width/ height + resize -2*$BORDER?
> 
> Something like:
> 
> ./oiiotool /Volumes/Build/test/test-75.jpg --pattern 
> constant:color=0.2,0.2,0.2,1.0 "{TOP.width}x{TOP.height}" "{TOP.nchannels}" 
> —-resize “{TOP.width-2*40}x{TOP.height-2*40}” --paste "+40+40” -o 
> /Volumes/Build/test/test_frame.png
> 
> Mikael
> 
> Best regards,
> 
> Mikael Sundell
> [email protected] <mailto:[email protected]>
> 
>> On 17 Oct 2021, at 19:16, Larry Gritz <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Maybe something like
>> 
>> BORDER=40
>> COLOR=.2,.2,.2,1.0
>> oiiotool input.tif --pattern constant:color=$COLOR 
>> "{TOP.width+2*$BORDER}x{TOP.height+2*$BORDER}" "{TOP.nchannels}" --paste 
>> "+$BORDER+$BORDER" -o output.tif
>> 
>> Note the use of oiiotool's {expression substitution} so that you don't need 
>> to know the resolution of the input image.
>> 
>> Breakdown:
>> 
>> oiiotool                    # you know what that is
>>     input.tif               # read input image, put it on the stack
>>     --pattern constant <size> <chans>   # push a constant-colored image on 
>> the stack
>>                                         #   note: at this point, input.tif 
>> is now
>>                                         #         the 2nd from top image.
>>     --paste <offset>        # paste the 2nd-from-top image on the top image
>>                             #     .. at the given offset coordinate
>>     -o output.tif           # write the result here
>> 
>> Details:
>> 
>> In expressions, TOP is the image currently on the top of the stack (that is, 
>> input.tif, since the constant image hasn't been pushed yet, when the 
>> arguments to --pattern are still being evaluated). So TOP.width, TOP.height, 
>> and TOP.nchannels are the resolution and number of channels of input.tif. 
>> Therefore, {TOP.width+2*$BORDER}x{TOP.height+2*$BORDER} will expand to 
>> something like "2000x1160" if input.tif was 1920x1080 and BORDER was set to 
>> 40.
>> 
>> 
>> 
>>> On Oct 17, 2021, at 7:00 AM, Mikael Sundell <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Hey all,
>>> 
>>> I’ve been away for some time and now playing with OpenImageIO and 
>>> Lightroom, is it possible to somehow generate a border around an image with 
>>> something like a resize 7-80% + fill with white/ black or any other color 
>>> using the command line tools?
>>> 
>>> Remember doing this in the past using olio c++ and Qt/ pixmaps.
>>> 
>>> Thanks :-)
>>> 
>>> Mikael
>>> 
>>> 
>>> Best regards,
>>> 
>>> Mikael Sundell
>>> [email protected] <mailto:[email protected]>
>>> 
>>> _______________________________________________
>>> Oiio-dev mailing list
>>> [email protected] <mailto:[email protected]>
>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>> 
>> --
>> Larry Gritz
>> [email protected] <mailto:[email protected]>
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> 
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
[email protected]




_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to