What you're looking for is a simple global variable, but they don't have those in C#. A simple alternative would be to create a class named MyImages (or whatever), and then make "im" a static public field, like this:
public class MyImages
{
public static Image im = Properties.Resources.green;
}
Then, from anywhere in your project, you can access "im" with code like this:
Image newImage = MyImages.im;
Some programmers may recoil in horror from something like this, and insist on "dependency injection" or a proper Singleton, or making "im" private and creating a get/set public property, or something like that. However, if you literally need to access this Image from anywhere in your code, this is a simple and effective way to do it, and it accomplishes the goal of keeping the code to generate the Image in one place.