Unhandled Exception: System.Runtime.InteropServices.SEHException: External component has thrown an exception.
at Aurigma.GraphicsMill.PipelineElement.RunPipeline()
at Aurigma.GraphicsMill.Pipeline.Run()
at Aurigma.GraphicsMill.Transforms.Transform.Apply(Bitmap source)
at Aurigma.GraphicsMill.TransformsProvider.ApplyAndDeleteTransform(IBitmapTransform transform)
at com.centrics.framework.imaging.ImageHelper.ResizeImage(Image src, Int32 newWidth, Int32 newHeight, Boolean force32bit, Boolean useWhiteBackground)
at PictureArchive.VersionedPicture.GenerateSizedImage(Image image, Int32 maxDimension)
We are getting the error above when running with this configuration at one of our locations. The other locations have the same configuration.
Note when this exception is raised, the application crashes, it is not caught by the try/catch wrapping our method. that exception info is outputted to the cmd console
We are loading the image from a memory stream
In Event Viewer there are four events related, with the third being weird since its happening when the pipeline is running internally. Maybe that will mean something to you. I tried with images on multiple drives on the machine.
1) Error Event 1026, It just had the callstack
2) Error Event 1000, Task Category 100
Faulting application name: SpecPrintProcessor.exe, version: 5.0.648.1, time stamp: 0xd6a1a0c8
Faulting module name: Aurigma.GraphicsMill.dll, version: 9.3.37.0, time stamp: 0x5b501c0c
Exception code: 0xc000001d
Fault offset: 0x0000000000afb431
Faulting process id: 0x1618
Faulting application start time: 0x01d9795549b637a2
Faulting application path: c:\xxx\SpecPrintProcessor.exe
Faulting module path: c:\xxx\Aurigma.GraphicsMill.dll
Report Id: 87c4838e-e548-11ed-813d-005056808975
Faulting package full name:
Faulting package-relative application ID:
3) Error Event 1005, Task Category 100
Windows cannot access the file for one of the following reasons: there is a problem with the network connection, the disk that the file is stored on, or the storage drivers installed on this computer; or the disk is missing. Windows closed the program SpecPrintProcessor because of this error.
Program: SpecPrintProcessor
File:
The error value is listed in the Additional Data section.
User Action
1. Open the file again. This situation might be a temporary problem that corrects itself when the program runs again.
2. If the file still cannot be accessed and
- It is on the network, your network administrator should verify that there is not a problem with the network and that the server can be contacted.
- It is on a removable disk, for example, a floppy disk or CD-ROM, verify that the disk is fully inserted into the computer.
3. Check and repair the file system by running CHKDSK. To run CHKDSK, click Start, click Run, type CMD, and then click OK. At the command prompt, type CHKDSK /F, and then press ENTER.
4. If the problem persists, restore the file from a backup copy.
5. Determine whether other files on the same disk can be opened. If not, the disk might be damaged. If it is a hard disk, contact your administrator or computer hardware vendor for further assistance.
Additional Data
Error value: 00000000
Disk type: 0
4) Information EventID 1001
Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0
Problem signature:
P1: SpecPrintProcessor.exe
P2: 5.0.648.1
P3: d6a1a0c8
P4: Aurigma.GraphicsMill.dll
P5: 9.3.37.0
P6: 5b501c0c
P7: c000001d
P8: 0000000000afb431
P9:
P10:
Configuration
Windows Server 2012 R2 Build 9600
Microsoft Visual C++ 2015-2022 Redistributable (x64) 14.31.31103
.net 4.8
Aurigma GraphicsMill 9.3.37 x64
Console Application x64
Things I tried
- I tried processing different image files (all jpgs)
- reinstalling the vs redist,
- copied the Aurigma GraphicsMill dll from a known good location (diff'ed them first, and the were the same)
- Tried installing the GraphicsMillRedistributable.exe that came with the sdk
- Enabled Fusion to see if there were any binding failures, none.
- Used Procmon.exe and procexp64.exe to see if it was failing to find/open a resource
- Created a linqPad script that just loads an image into an Aurigma bitmap, saves a copy to disk, then tries to apply rotate and resize transforms. With the linqpad, it does not crash, but just never returns from the transform call. I think linqpad is running in a separate process and that process is crashing in the background
Code:string filename = @"C:\Support\ElvirJason.jpg";
void Main()
{
int newWidth = 252;
int newHeight = 250;
using(var imgOutput = new Aurigma.GraphicsMill.Bitmap(filename))
{
Console.WriteLine($"Saving agBmp before resize2");
imgOutput.Save($@"C:\temp\agBmpBeforeResize_{DateTime.Now.Ticks}.jpg");
Console.WriteLine($"rotate imgOutput");
imgOutput.Transforms.Rotate(90);
imgOutput.Save($@"C:\temp\agBmpAfterRotate_{DateTime.Now.Ticks}.jpg");
Console.WriteLine($"Resizing imgOutput to {newWidth}x{newHeight}");
imgOutput.Transforms.Resize(newWidth, newHeight); //, Aurigma.GraphicsMill.Transforms.ResizeInterpolationMode.High, Aurigma.GraphicsMill.Transforms.ResizeMode.Resize);
Console.WriteLine($"saving to disk");
imgOutput.Save($@"C:\temp\agBmpBeforeResize_{DateTime.Now.Ticks}.jpg");
}
}
The method from the actual application:
Code:public static System.Drawing.Image ResizeImage(System.Drawing.Image src, int newWidth, int newHeight, bool force32bit = false, bool useWhiteBackground = false)
{
Aurigma.GraphicsMill.Bitmap imgOutput = null;
try
{
bool hasAlpha = (((ImageFlags)src.Flags).HasFlag(ImageFlags.HasAlpha) || ((ImageFlags)src.Flags).HasFlag(ImageFlags.HasTranslucent));
//No point putting in a white background if the incoming image does not have transparency
if (useWhiteBackground && (hasAlpha || src.PixelFormat == System.Drawing.Imaging.PixelFormat.Format32bppArgb))
{
using (var srcAG = new Aurigma.GraphicsMill.Bitmap((System.Drawing.Bitmap)src))
{
imgOutput = new Aurigma.GraphicsMill.Bitmap(src.Width, src.Height, Aurigma.GraphicsMill.PixelFormat.Format32bppArgb, Aurigma.GraphicsMill.RgbColor.White);
imgOutput.Draw(srcAG, 0, 0, Aurigma.GraphicsMill.Transforms.CombineMode.Alpha);
}
}
else
{
imgOutput = new Aurigma.GraphicsMill.Bitmap((System.Drawing.Bitmap)src);
Console.WriteLine($"Loaded gdibmp to agBmp");
}
imgOutput.Transforms.Resize(newWidth, newHeight, Aurigma.GraphicsMill.Transforms.ResizeInterpolationMode.High, Aurigma.GraphicsMill.Transforms.ResizeMode.Resize);
if (force32bit && imgOutput.PixelFormat != Aurigma.GraphicsMill.PixelFormat.Format32bppArgb)
{
imgOutput.ColorManagement.Convert(Aurigma.GraphicsMill.PixelFormat.Format32bppArgb);
}
return imgOutput.ToGdiPlusBitmap();
}
catch (Exception ex)
{
throw new ApplicationException(string.Format(CultureInfo.InvariantCulture, "Exception resizing image. Parameters: newWidth,newHeight {0},{1}, src w,h: {2},{3}", newWidth, newHeight, src.Width, src.Height), ex);
}
finally
{
if (imgOutput != null)
{
Console.WriteLine($"disposing imgOutput");
imgOutput.Dispose();
}
}
}
Edited by user Thursday, April 27, 2023 3:07:02 PM(UTC)
| Reason: Not specified