Texture2D question

I am going to have textures (PNG) files in my project, I want to use code other than Resource.Load to apply the textures at different times, problem is Texture.Load requires a byte array, well, these files are not stored on the file system but are embeded in the project, I could move them to the resource folder if I absolutely had to, but I want a core protected set in the project, so isn’t there a way to load a texture like Texture.Load(“name.png”) so it picks it up from within the compiled project as an embeded resource?

Example of something should be working if using Resource.Load but doesn’t find the file relative to the Resources folder (and the Docs C# code is missing an explicit conversion type)

Texture2D tSpellBar;
tSpellBar = new Texture2D(401, 41);
tSpellBar = (Texture2D)Resources.Load("Gems\\SpellBarTemplate", typeof(Texture2D));

Well, one issue down, another to go, resources load with relative path needs a / instead of a \ in c#, next problem, since this is all done via code, while the game is running, the scaling is happening again… I tried to see if the code for adjusting it in the editor would work to remove the scale to power of 2, but no good, so back to square 1 again, I simply want to load in the images “AS IS” with zero scaling at run time, not to much to ask but apparently there are rules in place that make all images scale to power of 2 even using resource load, even with a texture predefined size that it is loading into.

hmm… now what to do…