How to extract bitmap out of Direct3D 11 Texture2D object?How can you find out which process is listening on a port on Windows?How do I set the color of a single pixel in a Direct3D texture?Using DirectX HLSL Pixel Shader for creating image effects for photosChange ID3D11Texture2D pixel formatOpenGL to DirectX (Buffer To Texture To Screen)Rendering Windows screenshot capture bitmap as DirectX textureD3D11 screen desktop copy to ID3D11Texture2DGet Pixels Buffer from ID3D11Texture2D C++In SharpDX, how can I draw to a single Texture2D from a Texture2D array?Data race in passing a texture across threads in DirectX
Can you lasso down a wizard who is using the Levitate spell?
Accidentally leaked the solution to an assignment, what to do now? (I'm the prof)
Showing the closure of a compact subset need not be compact
What is the white spray-pattern residue inside these Falcon Heavy nozzles?
What is the meaning of "of trouble" in the following sentence?
Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?
What Brexit solution does the DUP want?
Is it legal to have the "// (c) 2019 John Smith" header in all files when there are hundreds of contributors?
Is it possible to do 50 km distance without any previous training?
How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?
Motorized valve interfering with button?
Is there a minimum number of transactions in a block?
Can an x86 CPU running in real mode be considered to be basically an 8086 CPU?
How can the DM most effectively choose 1 out of an odd number of players to be targeted by an attack or effect?
Why has Russell's definition of numbers using equivalence classes been finally abandoned? ( If it has actually been abandoned).
Is Social Media Science Fiction?
Why CLRS example on residual networks does not follows its formula?
Why don't electron-positron collisions release infinite energy?
Finding files for which a command fails
What typically incentivizes a professor to change jobs to a lower ranking university?
How do you conduct xenoanthropology after first contact?
How did the USSR manage to innovate in an environment characterized by government censorship and high bureaucracy?
cryptic clue: mammal sounds like relative consumer (8)
What is the logic behind how bash tests for true/false?
How to extract bitmap out of Direct3D 11 Texture2D object?
How can you find out which process is listening on a port on Windows?How do I set the color of a single pixel in a Direct3D texture?Using DirectX HLSL Pixel Shader for creating image effects for photosChange ID3D11Texture2D pixel formatOpenGL to DirectX (Buffer To Texture To Screen)Rendering Windows screenshot capture bitmap as DirectX textureD3D11 screen desktop copy to ID3D11Texture2DGet Pixels Buffer from ID3D11Texture2D C++In SharpDX, how can I draw to a single Texture2D from a Texture2D array?Data race in passing a texture across threads in DirectX
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I am using the Desktop Duplication API (C++) and have created an output duplication object and further queried the interface for a ID3D11Texture2D object.
I have tried using "D3DX11SaveTextureToFile" and "DirectX::SaveWICTextureToFile" but it gives an error. I need to extract the bitmap or pixel buffer out of this texture so that I can save it as an image. I have tried using a subresource and ID3D11DeviceContext::Map function to extract the pixel buffer but it seems to be empty. But context->Draw() seems to work.
Is there anyway I can extract the pixel buffer/bitmap/image out of the texture2D object?
Thanks!
UPDATE : I solved this using the CaptureTexture
function in DirectXTex. You can create a HBITMAP
from the resultant ScratchImage
c++ windows directx screenshot direct3d11
|
show 1 more comment
I am using the Desktop Duplication API (C++) and have created an output duplication object and further queried the interface for a ID3D11Texture2D object.
I have tried using "D3DX11SaveTextureToFile" and "DirectX::SaveWICTextureToFile" but it gives an error. I need to extract the bitmap or pixel buffer out of this texture so that I can save it as an image. I have tried using a subresource and ID3D11DeviceContext::Map function to extract the pixel buffer but it seems to be empty. But context->Draw() seems to work.
Is there anyway I can extract the pixel buffer/bitmap/image out of the texture2D object?
Thanks!
UPDATE : I solved this using the CaptureTexture
function in DirectXTex. You can create a HBITMAP
from the resultant ScratchImage
c++ windows directx screenshot direct3d11
What's the HRESULT error you are getting?
– Chuck Walbourn
Feb 8 '16 at 20:32
@ChuckWalbourn : D3DX11SaveTextureToFile gives "Attempted to create a device with the debug layer enabled and the layer is not installed" Directx::SaveWICTextureToFile gives "No such interface supported"
– arch3r
Feb 9 '16 at 6:05
D3DX11 is deprecated and hasn't been updated in many years, so the error output is probably trying to turnE_NOINTERFACE
into something meaningful which it isn't anymore. Can you tell me exactly which line of code inScreenGrab.cpp
orDirectXTexWIC.cpp
where you are seeing this error generated?
– Chuck Walbourn
Feb 9 '16 at 6:17
@ChuckWalbourn :IWICImagingFactory* pWIC = _GetWIC();
is failing and the return isE_NOINTERFACE
– arch3r
Feb 12 '16 at 4:02
What OS are you using? Which vcxproj/sln file or NuGet version of DirectXTex are you using? Depending on how you build the code,_GetWIC
will either try to use WIC2 and then WIC1, or just WIC1. See this post
– Chuck Walbourn
Feb 12 '16 at 6:08
|
show 1 more comment
I am using the Desktop Duplication API (C++) and have created an output duplication object and further queried the interface for a ID3D11Texture2D object.
I have tried using "D3DX11SaveTextureToFile" and "DirectX::SaveWICTextureToFile" but it gives an error. I need to extract the bitmap or pixel buffer out of this texture so that I can save it as an image. I have tried using a subresource and ID3D11DeviceContext::Map function to extract the pixel buffer but it seems to be empty. But context->Draw() seems to work.
Is there anyway I can extract the pixel buffer/bitmap/image out of the texture2D object?
Thanks!
UPDATE : I solved this using the CaptureTexture
function in DirectXTex. You can create a HBITMAP
from the resultant ScratchImage
c++ windows directx screenshot direct3d11
I am using the Desktop Duplication API (C++) and have created an output duplication object and further queried the interface for a ID3D11Texture2D object.
I have tried using "D3DX11SaveTextureToFile" and "DirectX::SaveWICTextureToFile" but it gives an error. I need to extract the bitmap or pixel buffer out of this texture so that I can save it as an image. I have tried using a subresource and ID3D11DeviceContext::Map function to extract the pixel buffer but it seems to be empty. But context->Draw() seems to work.
Is there anyway I can extract the pixel buffer/bitmap/image out of the texture2D object?
Thanks!
UPDATE : I solved this using the CaptureTexture
function in DirectXTex. You can create a HBITMAP
from the resultant ScratchImage
c++ windows directx screenshot direct3d11
c++ windows directx screenshot direct3d11
edited Mar 28 '16 at 11:52
arch3r
asked Feb 8 '16 at 9:27
arch3rarch3r
416
416
What's the HRESULT error you are getting?
– Chuck Walbourn
Feb 8 '16 at 20:32
@ChuckWalbourn : D3DX11SaveTextureToFile gives "Attempted to create a device with the debug layer enabled and the layer is not installed" Directx::SaveWICTextureToFile gives "No such interface supported"
– arch3r
Feb 9 '16 at 6:05
D3DX11 is deprecated and hasn't been updated in many years, so the error output is probably trying to turnE_NOINTERFACE
into something meaningful which it isn't anymore. Can you tell me exactly which line of code inScreenGrab.cpp
orDirectXTexWIC.cpp
where you are seeing this error generated?
– Chuck Walbourn
Feb 9 '16 at 6:17
@ChuckWalbourn :IWICImagingFactory* pWIC = _GetWIC();
is failing and the return isE_NOINTERFACE
– arch3r
Feb 12 '16 at 4:02
What OS are you using? Which vcxproj/sln file or NuGet version of DirectXTex are you using? Depending on how you build the code,_GetWIC
will either try to use WIC2 and then WIC1, or just WIC1. See this post
– Chuck Walbourn
Feb 12 '16 at 6:08
|
show 1 more comment
What's the HRESULT error you are getting?
– Chuck Walbourn
Feb 8 '16 at 20:32
@ChuckWalbourn : D3DX11SaveTextureToFile gives "Attempted to create a device with the debug layer enabled and the layer is not installed" Directx::SaveWICTextureToFile gives "No such interface supported"
– arch3r
Feb 9 '16 at 6:05
D3DX11 is deprecated and hasn't been updated in many years, so the error output is probably trying to turnE_NOINTERFACE
into something meaningful which it isn't anymore. Can you tell me exactly which line of code inScreenGrab.cpp
orDirectXTexWIC.cpp
where you are seeing this error generated?
– Chuck Walbourn
Feb 9 '16 at 6:17
@ChuckWalbourn :IWICImagingFactory* pWIC = _GetWIC();
is failing and the return isE_NOINTERFACE
– arch3r
Feb 12 '16 at 4:02
What OS are you using? Which vcxproj/sln file or NuGet version of DirectXTex are you using? Depending on how you build the code,_GetWIC
will either try to use WIC2 and then WIC1, or just WIC1. See this post
– Chuck Walbourn
Feb 12 '16 at 6:08
What's the HRESULT error you are getting?
– Chuck Walbourn
Feb 8 '16 at 20:32
What's the HRESULT error you are getting?
– Chuck Walbourn
Feb 8 '16 at 20:32
@ChuckWalbourn : D3DX11SaveTextureToFile gives "Attempted to create a device with the debug layer enabled and the layer is not installed" Directx::SaveWICTextureToFile gives "No such interface supported"
– arch3r
Feb 9 '16 at 6:05
@ChuckWalbourn : D3DX11SaveTextureToFile gives "Attempted to create a device with the debug layer enabled and the layer is not installed" Directx::SaveWICTextureToFile gives "No such interface supported"
– arch3r
Feb 9 '16 at 6:05
D3DX11 is deprecated and hasn't been updated in many years, so the error output is probably trying to turn
E_NOINTERFACE
into something meaningful which it isn't anymore. Can you tell me exactly which line of code in ScreenGrab.cpp
or DirectXTexWIC.cpp
where you are seeing this error generated?– Chuck Walbourn
Feb 9 '16 at 6:17
D3DX11 is deprecated and hasn't been updated in many years, so the error output is probably trying to turn
E_NOINTERFACE
into something meaningful which it isn't anymore. Can you tell me exactly which line of code in ScreenGrab.cpp
or DirectXTexWIC.cpp
where you are seeing this error generated?– Chuck Walbourn
Feb 9 '16 at 6:17
@ChuckWalbourn :
IWICImagingFactory* pWIC = _GetWIC();
is failing and the return is E_NOINTERFACE
– arch3r
Feb 12 '16 at 4:02
@ChuckWalbourn :
IWICImagingFactory* pWIC = _GetWIC();
is failing and the return is E_NOINTERFACE
– arch3r
Feb 12 '16 at 4:02
What OS are you using? Which vcxproj/sln file or NuGet version of DirectXTex are you using? Depending on how you build the code,
_GetWIC
will either try to use WIC2 and then WIC1, or just WIC1. See this post– Chuck Walbourn
Feb 12 '16 at 6:08
What OS are you using? Which vcxproj/sln file or NuGet version of DirectXTex are you using? Depending on how you build the code,
_GetWIC
will either try to use WIC2 and then WIC1, or just WIC1. See this post– Chuck Walbourn
Feb 12 '16 at 6:08
|
show 1 more comment
1 Answer
1
active
oldest
votes
For those who are getting E_NOINTERFACE
as their return code from DirectX::SaveWICTextureToFile
, you need to initialize COM using one of the following:
HRESULT hr = CoInitialize(nullptr); // Single threaded
HRESULT hr = CoInitializeEx(nullptr, COINITBASE_MULTITHREADED); // For multithreaded programs
Don't forget to call CoUninialize()
after you are done. This is because WIC uses COM and must be initialized before using it.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f35266134%2fhow-to-extract-bitmap-out-of-direct3d-11-texture2d-object%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
For those who are getting E_NOINTERFACE
as their return code from DirectX::SaveWICTextureToFile
, you need to initialize COM using one of the following:
HRESULT hr = CoInitialize(nullptr); // Single threaded
HRESULT hr = CoInitializeEx(nullptr, COINITBASE_MULTITHREADED); // For multithreaded programs
Don't forget to call CoUninialize()
after you are done. This is because WIC uses COM and must be initialized before using it.
add a comment |
For those who are getting E_NOINTERFACE
as their return code from DirectX::SaveWICTextureToFile
, you need to initialize COM using one of the following:
HRESULT hr = CoInitialize(nullptr); // Single threaded
HRESULT hr = CoInitializeEx(nullptr, COINITBASE_MULTITHREADED); // For multithreaded programs
Don't forget to call CoUninialize()
after you are done. This is because WIC uses COM and must be initialized before using it.
add a comment |
For those who are getting E_NOINTERFACE
as their return code from DirectX::SaveWICTextureToFile
, you need to initialize COM using one of the following:
HRESULT hr = CoInitialize(nullptr); // Single threaded
HRESULT hr = CoInitializeEx(nullptr, COINITBASE_MULTITHREADED); // For multithreaded programs
Don't forget to call CoUninialize()
after you are done. This is because WIC uses COM and must be initialized before using it.
For those who are getting E_NOINTERFACE
as their return code from DirectX::SaveWICTextureToFile
, you need to initialize COM using one of the following:
HRESULT hr = CoInitialize(nullptr); // Single threaded
HRESULT hr = CoInitializeEx(nullptr, COINITBASE_MULTITHREADED); // For multithreaded programs
Don't forget to call CoUninialize()
after you are done. This is because WIC uses COM and must be initialized before using it.
answered Mar 22 at 0:47
blueshogun96blueshogun96
274
274
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f35266134%2fhow-to-extract-bitmap-out-of-direct3d-11-texture2d-object%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What's the HRESULT error you are getting?
– Chuck Walbourn
Feb 8 '16 at 20:32
@ChuckWalbourn : D3DX11SaveTextureToFile gives "Attempted to create a device with the debug layer enabled and the layer is not installed" Directx::SaveWICTextureToFile gives "No such interface supported"
– arch3r
Feb 9 '16 at 6:05
D3DX11 is deprecated and hasn't been updated in many years, so the error output is probably trying to turn
E_NOINTERFACE
into something meaningful which it isn't anymore. Can you tell me exactly which line of code inScreenGrab.cpp
orDirectXTexWIC.cpp
where you are seeing this error generated?– Chuck Walbourn
Feb 9 '16 at 6:17
@ChuckWalbourn :
IWICImagingFactory* pWIC = _GetWIC();
is failing and the return isE_NOINTERFACE
– arch3r
Feb 12 '16 at 4:02
What OS are you using? Which vcxproj/sln file or NuGet version of DirectXTex are you using? Depending on how you build the code,
_GetWIC
will either try to use WIC2 and then WIC1, or just WIC1. See this post– Chuck Walbourn
Feb 12 '16 at 6:08