Apologies if this is a basic Ruby question. I have a C# method:
public class Myro {
…
public static IEnumerator getPixels(Picture picture) {
for (int x=0; x < picture.width; x++) {
for (int y=0; y < picture.height; y++) {
yield return picture.getPixel(x, y);
}
}
}
}
I can call this fine in IronPython:
for pixel in getPixels(pic):
r, g, b = getRGB(pixel)
gray = (r + g + b)/3
setRGB(pixel, gray, gray, gray)
But I don’t see how to call this from IronRuby:
Myro::getPixels(pic) do |pixel|
r, g, b = Myro::getRGB pixel
gray = (r + g + b)/3
Myro::setRGB(pixel, gray, gray, gray)
end
All I get back is Myro+c__Iterator0.
What do I need to do to actually get each pixel in IronRuby and
process it? Do I need an extension method, perhaps called “each”? If
so, can someone point me to some code?
Thanks in advance for any help,
-Doug