I have a problem that I would like to merge a large number of images using ImageMagick's convert.exe, but under Windows I have a 8192 byte long command line limit.
My solution to this is to split the task into smaller sub-task, run them, and do a final task which combines them together.
My idea is to write a function, which takes a vector of images and an integer, and splits the vector into n sub-vector all having "almost equal" parts.
So for example if I would like to split 11 into 3 groups it would be 4-4-3.
Can you tell me how can I do it in C++? I mean, to write a function
split_vec( const vector<image> &images, int split )
which does the splitting?
Also, can you tell me what is the most efficient way to do if I don't need to create new vectors, just iterate through the sub-parts? Like the std::substr
function with std::string
?
Note: I already use Boost in the project, so if there is some nice tool in Boost for this then it's perfect for me.
To split the vector or data frame in R, use the split() function. To recover the split vector or data frame, use the unsplit() method.
To get a base number for the size of each part, simply divide the total by the number of parts: 11/3 = 3. Obviously some of the parts will need to be bigger than that to get the proper total, but that's just the remainder: 11 % 3 = 2. So now you know that 2 of the parts will be size 3+1, and whatever's left over will be 3.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With