Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet visar hur du roterar en IWICBitmapSource- med hjälp av en IWICBitmapFlipRotator komponent.
Så här vänder du och roterar en bitmappskälla
Skapa ett IWICImagingFactory- objekt för att skapa WIC-objekt (Windows Imaging Component).
// Create WIC factory hr = CoCreateInstance( CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pIWICFactory) );
Använd metoden CreateDecoderFromFilename för att skapa en IWICBitmapDecoder från en bildfil.
HRESULT hr = S_OK; IWICBitmapDecoder *pIDecoder = NULL; IWICBitmapFrameDecode *pIDecoderFrame = NULL; IWICBitmapFlipRotator *pIFlipRotator = NULL; hr = m_pIWICFactory->CreateDecoderFromFilename( L"turtle.jpg", // Image to be decoded NULL, // Do not prefer a particular vendor GENERIC_READ, // Desired read access to the file WICDecodeMetadataCacheOnDemand, // Cache metadata when needed &pIDecoder // Pointer to the decoder );
Hämta den första IWICBitmapFrameDecode- av avbildningen.
// Retrieve the first bitmap frame. if (SUCCEEDED(hr)) { hr = pIDecoder->GetFrame(0, &pIDecoderFrame); }
JPEG-filformatet stöder endast en enda ram. Eftersom filen i det här exemplet är en JPEG-fil används den första ramen (
0
). Information om bildformat som har flera bildrutor finns i Hämta bildramar för åtkomst till varje bildruta.Skapa IWICBitmapFlipRotator som ska användas för att vända bilden.
// Create the flip/rotator. if (SUCCEEDED(hr)) { hr = m_pIWICFactory->CreateBitmapFlipRotator(&pIFlipRotator); }
Initiera flip/rotator-objektet med bilddata för bitmappsramen vågrätt (längs den lodräta y-axeln).
// Initialize the flip/rotator to flip the original source horizontally. if (SUCCEEDED(hr)) { hr = pIFlipRotator->Initialize( pIDecoderFrame, // Bitmap source to flip. WICBitmapTransformFlipHorizontal); // Flip the pixels along the // vertical y-axis. }
Se WICBitmapTransformOptions för ytterligare rotationer och flippningsalternativ.
Rita eller bearbeta den vända bitmappskällan.
Not
Gränssnittet IWICBitmapFlipRotator ärver från gränssnittet IWICBitmapSource, så att du kan använda det initierade flip/rotator-objektet var som helst som accepterar en IWICBitmapSource-.
Följande illustration visar hur en avbildning vänds horisontellt (längs den vertikala x-axeln).
Se även