C# 在以图像的文件路径为参数的函数中使用资源文件夹中的图像

C# 在以图像的文件路径为参数的函数中使用资源文件夹中的图像,c#,winforms,dll,C#,Winforms,Dll,我正在开发一个winform应用程序。它具有对dll库的引用。我想在此库中使用函数“PDFImage”。此函数用于将图像放入PDF文档。函数“PDFimage”有一个字符串类型的参数“FileName”,它获取图像的文件位置 现在,我必须把图像作为一个单独的文件与项目建成后创建的.exe文件。这对我来说不方便。我现在要做的是将图像的文件名作为函数参数,比如'Flower.jpg'。我将图像保存在\bin\debug文件夹中。 我不想这样做,因为这需要将图像文件与可执行文件分开放置 我想做的是:

我正在开发一个winform应用程序。它具有对dll库的引用。我想在此库中使用函数“PDFImage”。此函数用于将图像放入PDF文档。函数“PDFimage”有一个字符串类型的参数“FileName”,它获取图像的文件位置

现在,我必须把图像作为一个单独的文件与项目建成后创建的.exe文件。这对我来说不方便。我现在要做的是将图像的文件名作为函数参数,比如'Flower.jpg'。我将图像保存在\bin\debug文件夹中。 我不想这样做,因为这需要将图像文件与可执行文件分开放置

我想做的是: 我将图像文件作为现有项添加到资源文件夹中。现在,要调用函数PDFImage,我需要将文件名作为参数传递。我该怎么做


我随身带着dll的源代码。根据需要修改源代码并创建另一个dll是否比我现在所做的更好?

您所能做的就是获取资源,将其保存到一个文件(可能是临时文件),然后将文件名传递给函数。大多数在.net中接收文件的函数也会接收流,因此,如果您可以控制双方,我会这样做,这样您就不必乱搞文件系统了。

看看这是否有帮助

    string apppath = Application.StartupPath;
    string resname = @"\Resource.bmp";
    string localfile = "";
    localfile = apppath + resname;//Create the path to this executable.
    //Btw we are going to use the "Save" method of Bitmap class.It
    //takes an absolute path as input and saves the file there.

    //We accesed the Image resource through Properties.Resources.Settings and called Save method
    //of Bitmap class.This saves the resource as a local file in the same folder as this executable.
    Properties.Resources.Image.Save(localfile);

    MessageBox.Show("The path to the local file is : " + Environment.NewLine + localfile + Environment.NewLine +
    "Go and check the folder where this executable is.",
    this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);


    //localfile is the path you need to pass to some function like this;
    //SomeClass.Somefunction(localfile);

希望这有帮助,如果您需要,这是一个示例。

您应该显示一些不起作用的代码。乍一看,您似乎应该将文件存储在另一个文件夹中。@永远不能将图像资源作为文件路径传递,这两种类型都不同。图像资源为
Image
类型,
filename
string
类型。如果可能,请尝试修改函数参数并使其成为
SomeFunction(图像)
即将字符串参数更改为
图像
类型,然后您可以将图像资源用作函数参数。@Ek0nomik我没有共享任何代码,因为我没有做任何事情。我不知道从哪里开始。我将其存储在一个文件夹中。但我不需要在运行时将文件夹放在应用程序之外吗。如前所述,我只能将图像的文件位置传递给函数。我认为不可能在资源文件夹中传递图像的文件位置。嵌入这些图像有什么好处吗?@avirasingh但Aviral该函数属于dll。所以,我想我不能随心所欲地修改它。@永远好吧,如果代码在DLL中,那么遗憾的是,你没有别的办法,只能将图像作为一个松散的资源放在某个文件夹中。我看到在你的示例项目中,你只是简单地添加了图像,而不是嵌入其中。我还将图像作为现有项目添加,但没有将其作为嵌入式资源。但该文件未列在“属性”中。我应该为这个文件设置什么构建操作?我自己找到了答案