프로젝트에 Resources / myimage.jpg에 저장된 이미지가 있습니다. 이 이미지를 비트 맵 객체에 동적으로로드하려면 어떻게해야합니까?
답변
Windows Forms를 사용하고 있습니까? 속성 / 리소스 UI를 사용하여 이미지를 추가 한 경우 생성 된 코드에서 이미지에 액세스 할 수 있으므로 간단하게 수행 할 수 있습니다.
var bmp = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage);
답변
다음과 같은 방법으로 이미지에 대한 참조를 얻을 수 있습니다.
Image myImage = Resources.myImage;
당신이 확인하려면 사본 이미지를, 당신은 다음을 수행해야합니다 :
Bitmap bmp = new Bitmap(Resources.myImage);
완료되면 bmp 를 폐기하는 것을 잊지 마십시오 . 컴파일 타임에 리소스 이미지의 이름을 모르는 경우 리소스 관리자를 사용할 수 있습니다.
ResourceManager rm = Resources.ResourceManager;
Bitmap myImage = (Bitmap)rm.GetObject("myImage");
ResourceManager의 장점은 Resources.myImage가 일반적으로 범위를 벗어나거나 자원에 동적으로 액세스하려는 경우 사용할 수 있다는 것입니다. 또한 이것은 사운드, 구성 파일 등에서 작동합니다.
답변
리소스 스트림에서로드해야합니다.
Bitmap bmp = new Bitmap(
System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceStream("MyProject.Resources.myimage.png"));
어셈블리의 모든 리소스 이름을 알고 싶다면 다음을 수행하십시오.
string[] all = System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceNames();
foreach (string one in all) {
MessageBox.Show(one);
}
답변
제안 된 모든 답변보다 훨씬 쉬운 방법
tslMode.Image = global::ProjectName.Properties.Resources.ImageName;
답변
여러 프로젝트에서 사용하는 코드 … 아이콘이 아닌 비트 맵으로 만 리소스에 이미지를 저장한다고 가정합니다.
public static Bitmap GetImageByName(string imageName)
{
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
string resourceName = asm.GetName().Name + ".Properties.Resources";
var rm = new System.Resources.ResourceManager(resourceName, asm);
return (Bitmap)rm.GetObject(imageName);
}
답변
가장 좋은 방법은 프로젝트의 리소스 설정에서 이미지 리소스로 추가하는 것입니다. 그런 다음 Resources.myimage를 수행하여 이미지를 직접 가져올 수 있습니다. 생성 된 C # 속성을 통해 이미지를 가져옵니다.
이미지를 Embedded Resource로 설정하면 다음과 같이 얻을 수 있습니다.
string name = "Resources.myimage.jpg"
string namespaceName = "MyCompany.MyNamespace";
string resource = namespaceName + "." + name;
Type type = typeof(MyCompany.MyNamespace.MyTypeFromSameAssemblyAsResource);
Bitmap image = new Bitmap(type.Assembly.GetManifestResourceStream(resource));
여기서 MyTypeFromSameAssemblyAsResource는 어셈블리에있는 모든 유형입니다.
답변
아래 하나를 사용하십시오. Windows 폼의 그리드 뷰 셀로 이것을 테스트했습니다.
Object rm = Properties.Resources.ResourceManager.GetObject("Resource_Image");
Bitmap myImage = (Bitmap)rm;
Image image = myImage;
“Resource_Image”의 이름은 프로젝트에서 찾을 수 있습니다.
프로젝트 이름 아래에서을 찾을 수 Properties
있습니다. 확장하십시오. 거기에서 Resources.resx
파일 을 볼 수 있습니다. 열어 봐. 파일 이름을 “Resource_Image”로 적용하십시오.