Cursore Windows (.cur)
Specificația StandardWindows Cursor Resource (CUR) este formatul nativ de pointer de mouse pentru Microsoft Windows, identic în arhitectura containerului cu ICO, dar care specifică coordonate exacte pentru offset-ul hotspot-ului.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele CUR prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele CUR prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
00 00 02 00REPREZENTARE ASCII: ....
Standardizare: Specificația resurselor Microsoft Windows
Specificații tehnice
| Arhitectură container | Antet ICONDIR cu tipul de resursă 2 (cursor), urmat de matricea ICONDIRENTRY și datele DIB |
| Compresie | DIB necomprimat sau fluxuri comprimate PNG (Windows Vista și versiunile ulterioare) |
| Ordinea octeților | Little-Endian (Intel x86) |
| Spații de culoare | RGB dependent de dispozitiv |
| Canale și structură | Mască monocromă pe 1 bit, 4 sau 8 biți, ori BGRA cu alfa pe 32 de biți |
| Dimensiuni maxime | De obicei 32 x 32, 48 x 48 sau 64 x 64 (acceptă până la 256 x 256 în Windows modern) |
| Transparență | Mască binară XOR/AND sau canal alfa gradual pe 8 biți |
| Streaming și progresiv | Director desktop pentru pictograme/cursore, care nu poate fi transmis în flux |
Matrice de comparație tehnică: CUR vs. concurenți
| Atribut tehnic | CUR (Curent) | ICO | PNG | SVG |
|---|---|---|---|---|
| Definirea Hotspot-ului | Coordonate X/Y în pixeli încorporate | Niciuna (centru/stânga-sus implicit) | Definit în CSS | Definit în viewBox SVG |
| ID tip resursă | 0x0002 (Cursor) | 0x0001 (Pictogramă) | Imagine standard | XML vectorial |
| Sistem de operare | Subsistemul nativ de mouse Windows | Shell Windows / Favicon pentru browser | Este acceptat de multe browsere și aplicații | Este acceptat de multe browsere și aplicații |
| Scalabilitate | Mipmap-uri fixe cu rezoluții multiple | Mipmap-uri fixe cu rezoluții multiple | Raster cu dimensiune fixă | Scalare vectorială infinită |
Moduri comune de corupție și ghid de recuperare hexazecimală
Click-ul de mouse se înregistrează la câțiva pixeli distanță față de vârful săgeții cursorului.
Cauză principală: Coordonate Hotspot X/Y corupte sau lipsă în tabelul ICONDIRENTRY.
Recuperare: Recreați cursorul în File2File.app Cursor Converter pentru a recalibra vizual coordonata hotspot-ului.
Analiză de securitate și vectori de atac asupra parserului
Erorile de parsare CUR din Interfața de Dispozitiv Grafic Windows (GDI) au permis istoric execuția de cod arbitrar prin intermediul dimensiunilor de antet concepute special.
Vectori de atac cunoscuți
- Depășire de întreg (integer overflow) în timpul alocării măștilor de culoare DIB în decodoarele de cursoare vechi.
- Decalaje corupte ale hotspot-ului care declanșează citiri de pointer în afara limitelor (out-of-bounds) în timpul randării cursorului.
- Coruperea memoriei heap la parsarea fluxurilor PNG încorporate în fișiere CUR moderne.
Cele mai bune practici de securitate: Validează că toate coordonatele punctului activ se află strict în dimensiunile cadrului (0 <= X < lățime, 0 <= Y < înălțime).
Origini istorice și repere
Avantaje cheie și beneficii
- Definește coordonate exacte ale hotspot-ului în pixeli (X, Y) unde se înregistrează fizic click-urile de mouse pe ecran.
- Permite definirea de cursoare cu rezoluții multiple pentru un afișaj clar pe monitoare standard și high-DPI de 4K.
- Suport direct și nativ din partea sistemului de operare în Windows, fără a necesita drivere terțe pentru pointer.
Limitări tehnice și dezavantaje
- Format centrat pe Windows, cu suport nativ slab pentru afișaj pe dispozitive mobile și browsere non-Windows.
- Doar pointer static; cursoarele animate necesită containerul multi-cadru .ANI.
- Măștile XOR tradiționale pe 1 bit produc artefacte dure de inversare pe interfețele moderne colorate.
Curiozități tehnice interesante
- Singura diferență structurală între un fișier ICO și un fișier CUR este octetul 3 al antetului: 1 pentru pictogramă (Icon), 2 pentru cursor (Cursor).
- Într-un fișier ICO, octeții 4 și 6 ai fiecărei intrări reprezintă planurile de culoare și biții pe pixel; într-un fișier CUR, acești octeți preciși reprezintă coordonatele Hotspot X și Y.
- CSS acceptă cursoare web personalizate direct folosind adrese URL care indică spre fișiere .cur.
Întrebări tehnice frecvente
Ce este un punct de activare (hotspot) al cursorului?
Un hotspot este coordonata exactă a pixelului din interiorul imaginii cursorului (cum ar fi vârful exact al unei săgeți sau centrul unei cruciulițe) unde au loc evenimentele de clic.
Pot converti o imagine (PNG/JPG) într-un fișier CUR?
Da. File2File.app îți permite să convertești imagini PNG sau JPG obișnuite în fișiere cursor Windows .CUR și să alegi un punct activ personalizat.
Cum pot folosi un fișier .cur pe site-ul meu web?
Poți aplica cursoare personalizate în CSS folosind: cursor: url('my-cursor.cur'), auto;