Váš prohlížeč není podporovaný.

Pokud chcete používat tento web, musíte si aktualizovat prohlížeč.

Aktualizovat na nejnovější verzi Internet Exploreru

Chyba: Selhání StretchBlt()/StretchDIBits() s velmi velké roztáhnout

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

111865
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
3.00 3.10 WINDOWS kbprg kbbuglist
Příznaky
Je-li faktor roztažení rozsáhlý, například při roztažení z velmi malé velké výšky, StretchDIBits() a StretchBlt() může vrátit nula (0) a nezobrazí. Stejné rastrový obrázek s menší roztáhnout zobrazen správně.
Příčina
Většina ovladačů zobrazení není implementovat vlastní StretchBlt() nebo StretchDIBits() tak, že rozhraní GDI musí simulovat těchto volání. Část simulace GDI zahrnuje přidělení vyrovnávací paměti dočasné práce, která jsou omezena na 64 kB. Pokud velikost vyrovnávací paměti pro práci se počítá větší než 64 kB, výška obdélníky zdrojové a cílové jsou sníženy až do doby, kdy jsou menší než 64 kB. Problém je, že pokud GDI musí nadále výšku vydělte dvěma (2) Chcete-li získat vyrovnávací paměť je menší než 64 kB, by mohla výška zdroj nebo cíl nakonec dosáhnout jeden řádek pro skenování. V tomto okamžiku volání nezdaří, protože nelze rozdělit řádek prohledávání do podjednotky.

StretchBlt() a StretchDIBits() nejsou navrženy pro poskytnout neomezený počet roztažení. Však jejich může selhat trochu více předčasně než omezení jejich návrhu.
Řešení
Pokud StretchBlt() nebo StretchDIBits() nezdaří na velké roztáhnout, může aplikace rozdělení bitmapy zdroje, jednotlivě roztáhnout kusů a umístěte je správně jednou roztažení. Jinou alternativou je provést menší roztáhnout. Neexistuje žádný vzorec k určení přesně co rastrové obrázky se nezdaří v jaké velikosti roztáhnout.
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku.
Další informace
Problém reprodukovat, vytvořit bitmapu přibližně 2048 pixelů 16 obrazových bodů vysoké. Poté lze zobrazit rastrového obrázku s DIBVIEW vzorek ze sady Windows 3.1 SDK. Zvolte roztáhnout do okna z nabídky Volby na DIBVIEW, aby rastrového obrázku je roztažený podle velikosti okna klienta. Pokud výška je více než 200 obrazových bodů, bitmapa se nezobrazí.
buglist3.00 buglist3.10 3.00 3.10 selhání zvětšení

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 111865 - Poslední kontrola: 01/11/2015 00:50:15 - Revize: 2.1

  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
  • kbnosurvey kbarchive kbmt kbbug kbpending KB111865 KbMtcs
Váš názor