Я пытаюсь использовать SharpDX для рисования большого изображения (21000x7000) из файла.Просмотр большого изображения с SharpDX
код выглядит следующим образом:
if (newBitmap==null)
{
ImagingFactory imagingFactory = new ImagingFactory();
NativeFileStream fileStream = new NativeFileStream(@"D:\path\myfile.png",
NativeFileMode.Open, NativeFileAccess.Read);
BitmapDecoder bitmapDecoder = new BitmapDecoder(imagingFactory, fileStream, DecodeOptions.CacheOnDemand);
BitmapFrameDecode frame = bitmapDecoder.GetFrame(0);
FormatConverter converter = new FormatConverter(imagingFactory);
// Format32bppPArgb
// Format32bppPRGBA
converter.Initialize(frame, SharpDX.WIC.PixelFormat.Format32bppPRGBA);
newBitmap = SharpDX.Direct2D1.Bitmap1.FromWicBitmap(target, converter);
}
target.DrawBitmap(newBitmap,new RawRectangleF(0,0,target.Size.Width,target.Size.Height),1,BitmapInterpolationMode.Linear);
При выполнении, я получаю следующее исключение в FromWicBitmap
функции:
Exception thrown: 'SharpDX.SharpDXException' in SharpDX.dll
Additional information: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect.
Когда я изменить размер изображения до 2100x700, он загружает и отображает просто отлично, поэтому проблема заключается в размере изображения.
Я хочу изображение этого размера, потому что позже планирую добавить функцию масштабирования.
Я совершенно не знаком с Direct2D. Каков наилучший способ справиться с этим?
Вам действительно нужно включить отладку DirectX, чтобы получить основную причину проблемы. Это описано здесь http://stackoverflow.com/questions/3331240/how-to-enable-more-debugging-info-for-directx-variables-in-vs-2008 – PhillipH