StretchBlt()/StretchDIBits() αποτυγχάνει όταν μεγέθη Bitmap διαφέρουν σε μεγάλο βαθμό

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 269585 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

StretchBlt() και StretchDIBits() μπορεί να επιστρέψει την τιμή FALSE (0, ΔΥΑΔΙΚΉ τιμή που δηλώνει αποτυχία) και αυτό μπορεί να προκύψει ακόμα και αν δεν έχει αρκετή μνήμη συστήματος, και τα δύο περιβάλλοντα συσκευής είναι συμβατά και βρίσκονται και οι δύο ορθογωνίων κατάλληλα όρια. Αυτό το ζήτημα μπορεί να προκύψει, εάν το bitmap προέλευσης είναι πολύ μικρότερο από το bitmap προορισμού.

Αυτό το ζήτημα είναι γνωστό ότι επηρεάζει την εμφάνιση των συγκεκριμένων εικόνες bitmap ως ταπετσαρία της επιφάνειας εργασίας με ενεργοποιημένο το περιεχόμενο Active Desktop Web.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή διασύνδεσης συσκευών γραφικών (GDI) εκχωρεί ένα εσωτερικό buffer για την κλιμάκωση λειτουργίες bitmap. Γραμμής σάρωσης (ή μπάντα) από το bitmap προέλευσης είναι παραμορφωμένη (ή κλιμάκωση) σε αυτό το buffer και στη συνέχεια αντιγράφονται σε bitmap προορισμού. Το μέγεθος του buffer που καθορίζεται από τις ακόλουθες αρχικές συνθήκες:
  • Το πλάτος του bitmap προορισμού σε μία προέλευση PELS σάρωση γραμμής.
  • Η κάθετη κλίμακα (ύψος προορισμού / ύψος του αρχείου προέλευσης).
  • Ο αριθμός των byte ανά PEL (βάθος χρώματος).
Το μέγιστο μέγεθος του buffer αυτή περιορίζεται σε 64 kilobyte (για StretchBlt()) και 192 kilobyte (για StretchDIBits()). Αν το κλίμακας παράγοντες ή multipliers είναι μεγάλο, δεν μπορεί να είναι δυνατή για StretchBlt() να εκχωρήσει ένα buffer που είναι μικρότερα από 64 kilobyte (K) και και είναι αρκετά μεγάλη για το χειρισμό ενός μεμονωμένου ζώνη. Παρομοίως, StretchDIBits() δεν μπορεί να εκχωρήσει ένα buffer που είναι μικρότερα από 192 KB που μπορεί να χωρέσει σε μία ζώνη.

Δεδομένης μετρήσεις οθόνης 1024 x 768 x 256 χρωμάτων και bitmap προέλευσης 16 x 16, StretchBlt() αποτύχει λόγω συνθηκών όριο στη μέθοδο hunt που χρησιμοποιείται για την αναζήτηση του μεγέθους του buffer βέλτιστη, αλλά θα επιτύχει εάν το bitmap προέλευσης ήταν 18 x 18 ή μεγαλύτερο.

Περισσότερες πληροφορίες

Για πρόσθετες πληροφορίες σχετικά με το λόγο StretchBlt() ενδέχεται να αποτύχει, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
92529ΠΛΗΡΟΦΟΡΙΕΣ: Αιτίες για την αποτυχία της λειτουργίες Bitmap
Για πρόσθετες πληροφορίες σχετικά με τον τρόπο αυτό το ζήτημα επηρεάζει Active Desktop περιεχομένου του Web, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
269595PRB: Επιφάνειας εργασίας ταπετσαρία του Active ανακατευτεί
Για πρόσθετες πληροφορίες σχετικά με αυτό το θέμα και Microsoft Windows 3.x, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
111865BUG: Αποτυχία StretchBlt()/StretchDIBits() με πολύ μεγάλη παραμόρφωση

Ιδιότητες

Αναγν. άρθρου: 269585 - Τελευταία αναθεώρηση: Τρίτη, 28 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Windows 95
Λέξεις-κλειδιά: 
kbdisplay kbprb kbmt KB269585 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:269585

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com