如何从VBA中的文件加载的图像中创建和保存缩略图?
我知道如何用C#写这个。我试图为此目的创建一个外部exe文件但不知何故当我尝试通过VBA Shell运行它时它不起作用,但是如果我通常通过Windows资源管理器传递一个参数,它就可以工作。
这是ThumbMaker的完整C#代码:
using System;
using System.Drawing;
class Program
{
static void Main(string[] args)
{
if (args.Length == 2)
{
string inputPath = args[0];
string outputPath = args[1];
try
{
Bitmap b = (Bitmap)Bitmap.FromFile(@inputPath);
b.GetThumbnailImage(160, 160, null, IntPtr.Zero).Save(outputPath);
Console.WriteLine(inputPath);
Console.WriteLine(outputPath);
Console.WriteLine(b.Height);
Console.ReadLine();
}
catch
{
Console.WriteLine("Something went wrong, probably input file could not be converted to bitmap");
Console.ReadLine();
}
}
else
{
Console.WriteLine("You must run this program with 2 parameters");
Console.WriteLine("1. is inputPath , 2. is outputPath");
Console.ReadLine();
}
}
}
这基本上是我需要转换为VBA的内容:
Bitmap b = (Bitmap)Bitmap.FromFile(@inputPath);
b.GetThumbnailImage(160, 160, null, IntPtr.Zero).Save(outputPath);
此VBA尝试无效:
Private Sub UploadButton_Click()
Dim strProgramName As String
Dim strArgument1 As String
Dim strArgument2 As String
strProgramName = Initialization.ImagesPath & "ThumbnailMaker.exe"
strArgument1 = PathTextBox.Text
'strArgument2 = ImageID & "_img" & ImageNumber & ".jpg"
strArgument2 = "newIMG.jpg"
Call Shell("""" & strProgramName & """ """ & strArgument1 & """ """ & strArgument2 & """", 1)
End Sub
答案 0 :(得分:0)
假设您正在尝试使用外部程序创建缩略图,我只想这样做:
Process.Start("C:/Path/ThumbnailMaker.exe", "Your Arguments for the external
Program here i.e. the filepath: Initialization.ImagesPath")
然后,如果您可以使用第三方程序指定文件的输出名称,您也可以使用此参数然后获取文件,因为您已经获得了名称。否则,如果本程序因任何原因使用随机化输出文件名,请使用systemfilewatch并获取您的文件名。