OK, let's use the XX%xYY% syntax for nonuniform scale. Just update your patch, 
and either send it to me or post a pull request to GitHub.

        -- lg


On Dec 24, 2014, at 1:31 PM, Justin Israel <[email protected]> wrote:

> I don't know why I didn't realize that the duplicate actions were already 
> supported. So that pretty much negates the need for my extra suggestion since 
> you can just write more action params. 
> 
> The float percentages syntax would be great, since it aligns better with 
> future syntax, like you had said. I'm happy to adjust my patch to cover this 
> different syntax.  Looking forward to hearing your thoughts on the extended 
> features, once you have had a chance to look over some options.
> 
> Thanks!
> 
> On Tue Dec 23 2014 at 8:22:44 PM Larry Gritz <[email protected]> wrote:
> On Dec 22, 2014, at 10:24 PM, Justin Israel <[email protected]> wrote:
> 
>> The ":" separator was only a suggestion. It would be good to hear what 
>> others think on that. Although I did think of it similar to an aspect ratio, 
>> without being confused for actually being an aspect, since I am not sure 
>> what 3:2 would imply.
> 
> I would assume that '3:2' means an aspect ratio of 1.5.  Like "4:3" commonly 
> is used to describe the aspect ratios of old TV monitor's display area if 
> there are square pixels (like 640x480).
> 
> I'm trying to think "if I, or someone like me, saw that command line, without 
> reading the documentation, would they be likely to correctly guess what it 
> does." That isn't always possible (and there are some oiiotool operations 
> that even I need to look up every single time because I find them confusing, 
> despite having written them), but I think it's worth striving for. I think 
> really my reaction was simply that the pattern "A:B" is associated with 
> aspect ratios, not with x and y values.
> 
> 
>> Would it be scaling the height while maintaining the width? Is it scaling 
>> the width to maintain the height? So I figured if you said 3:2, the only 
>> concrete values that could be derived are 3*x:2*y . Unless you are 
>> suggesting that the ratio might apply to some previously specified 
>> width/height. 
> 
> I guess we'd choose a convention: preserve the horizontal, or the vertical, 
> or whichever is bigger, or smaller. 
> 
> 
>>  Maybe the scales could be conveyed through a <float>%x<float>%
> 
> I'd be ok with that:   --resize 200%x50%  would mean double the horizontal 
> resolution and halve the vertical resolution and is the natural 
> extension/combination of our two existing notations: "-resize <float>%" 
> (uniform scale) and "-resize <float>x<float>" (absolute resolution). For that 
> reason, this is my current favourite so far.
> 
> 
>> I would probably prefer the <float>:<float> syntax to that, though.
> 
> If we wanted to extend the syntax in the future to allow specification of 
> aspect ratios, we will be disappointed to have already used the ideal 
> notation for that.
> 
> 
>>  Maybe that was a bad example then, because I forgot that I could have 
>> tacked on a --fit operation after the resize to accomplish that task. But I 
>> don't think you can have multiple --resize or --fit operations under the 
>> current ArgParse impl, right? If that was the only possible case for needing 
>> subsequent transformations, then maybe the multiple "," support isn't needed.
> 
> Sure you can!  ArgParse doesn't have to work this way, but oiiotool uses a 
> mode where It actually processes the commands left-to-right, calling a 
> function for each command as it parses it, rather than just setting flags and 
> running one function at the end. So this is perfectly legal:
> 
>       oiiotool input.tif -resize 50% -resize 200% -o blurry.tif
> 
> That's actually a kind of cool way to remove the high frequency content 
> (though probably less efficient than --blur).
> 
> 
>> Perhaps related, I've also toyed with the idea of some kind of string 
>> substation rules on the command line where you could access metadata 
>> (including resolution) of the "current" image, and maybe even do simple math 
>> expression with it. That's a much more invasive surgery, including needing a 
>> bit of overhaul in the ArgParse class we use for command line arguments. But 
>> it's an interesting direction for future work that would make oiiotool even 
>> more flexible.
>> 
>> Honestly, I was thinking that very same thing, but I didn't want to suggest 
>> too much up front. ffmpeg has some neat expression support in its filter 
>> flags. oiiotool probably doesn't need quite as extensive of support for 
>> these expressions, but the ability to access context-specific values through 
>> symbols would be sweet. Like if I could have said:
>> 
>> --resize "w/2 x h/4" 
>> 
>> So, scale the in-width down by half, and scale the in-height down by half 
>> and also another half for the anamorphic squeeze. 
>> 
>> Maybe cool things to have access to would be:
>> w - input width
>> h - input height
>> ar - aspect ratio
> 
> I'm thinking even more general than that... retrieval of any metadata. For 
> example, why not be able to extract the "ImageDescription" and render it as 
> text atop the image? 
> 
> I haven't thought it through enough to come up with the right syntax yet, 
> however, and we need to be careful to make it easy for it to correctly 
> disambiguate the metadata retrieval from the math expressions, and make sure 
> neither could be confused for filenames.
> 
> This is more for long-term. It's a big step and will be an important feature, 
> I don't want to botch it by picking a syntax that we later come to regret.
> 
> I'll look into ffmpeg as you suggest and see what it does.
> 
> --
> Larry Gritz
> [email protected]
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> [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