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;








0















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










share|improve this question
























  • 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 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











  • 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


















0















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










share|improve this question
























  • 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 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











  • 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














0












0








0








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










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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 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











  • 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











  • @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











  • @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'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













1 Answer
1






active

oldest

votes


















0














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.






share|improve this answer























    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
    );



    );













    draft saved

    draft discarded


















    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









    0














    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.






    share|improve this answer



























      0














      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.






      share|improve this answer

























        0












        0








        0







        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.






        share|improve this answer













        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 22 at 0:47









        blueshogun96blueshogun96

        274




        274





























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

            Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

            Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript