Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan VML, fitur yang tidak digunakan lagi pada Windows Internet Explorer 9. Halaman web dan aplikasi yang mengandalkan VML harus dimigrasikan ke SVG atau standar lain yang didukung secara luas.
Catatan
Pada Desember 2011, topik ini telah diarsipkan. Akibatnya, tidak lagi dipertahankan secara aktif. Untuk informasi selengkapnya, lihat Konten yang Diarsipkan. Untuk informasi, rekomendasi, dan panduan mengenai versi Windows Internet Explorer saat ini, lihat Pusat Pengembang Internet Explorer.
Konten
Pendahuluan
Proposal ini menggunakan sejumlah kecil jenis dasar, yang tercantum dalam tabel di bawah ini.
| Jenis | Elemen | Representasi Dasar | Deskripsi |
|---|---|---|---|
| Boolean | 1 bit | Nilai boolean: benar atau salah. | |
| Fraksi | angka 2 6 | Nilai numerik, diskalakan sebesar 2 6 (65536) dan disimpan sebagai bilangan bulat yang ditandatangani. | |
| ordinat | Bilangan bulat 30-bit plus tanda | Bagian dari koordinat (misalnya, dalam jalur ), nilai yang ditentukan oleh koord. | |
| length | EMU | Panjang fisik, seperti lebar garis atau ukuran font. | |
| Mengukur | EMU atau angka 2 6 | Panjang fisik, termasuk sejumlah piksel perangkat, atau sebagian kecil dari beberapa kuantitas lainnya. | |
| Sudut | derajat 2 6 | Sudut; positif searah jajarannya. | |
| Warna | c | kompleks | Elemen yang memungkinkan warna diturunkan. |
| Font | Font | kompleks | Deskripsi font. |
| Bitmap | Bitmap | href | Referensi ke file gambar eksternal. |
| Vektor | V | kompleks | Deskripsi jalur vektor |
"Representasi mendasar" adalah representasi presisi tertinggi bahwa proposal memerlukan implementasi yang sesuai untuk dipertahankan; data akan hilang jika implementasi tidak dapat mewakili data dengan presisi yang diperlukan. Jenis warna, font, dan vektor sesuai dengan elemen yang memiliki struktur -- dalam arti tertentu, mereka bukan jenis dasar; namun, lebih mudah untuk memperlakukan mereka seperti itu dalam proposal ini.
Setiap jenis dasar non-kompleks memiliki elemen terkait dengan nama yang sama. Nama elemen ini dicadangkan dan tidak dapat digunakan untuk tujuan lain dalam ekstensi, bahkan jika penggunaannya berada dalam elemen ekstensi onview="skip". Karena itu, dimungkinkan untuk implementasi yang menemukan XML yang tidak diketahui untuk menyediakan penyimpanan internal XML yang tidak diketahui yang efisien selama nilai diapit dalam elemen "jenis".
<new:tag>1.578</new:tag>
<new:tag><v:fraction>1.578</v:fraction></new:tag>
Dalam contoh pertama di atas, string "1.578" harus disimpan sebagai urutan karakter (implementasi tidak tahu apakah itu string atau angka); dalam contoh kedua, elemen fraksi menunjukkan bahwa konten adalah angka, sehingga dapat dikonversi ke representasi fraksi presisi tinggi.
Jenis kompleks (termasuk bitmap) memiliki nama elemen terkait yang digunakan untuk memisahkan nilai. Ini menyederhanakan penguraian dengan memastikan bahwa tugas penguraian yang lebih kompleks dikaitkan dengan tag elemen unik.
Boolean
boolean
<!entity % boolean "#pcdata" -- or nmtoken in an attribute -- >
Nilai boolean direpresentasikan sebagai kata kunci yang menunjukkan status bendera. Kata kunci berikut didefinisikan.
| Nilai untuk true | Nilai untuk false |
|---|---|
| benar | salah |
| yes | no |
| aktif | off |
| t | f |
| 1 | 0 |
Implementasi dapat menulis nilai apa pun dan harus mengenali semua nilai. Implementasi bebas mengubah nilai dari satu representasi ke representasi lainnya.
pecahan
fraction
<!entity % fraction "#pcdata" -- or nmtoken in an attribute -- >
Semua nilai numerik (yaitu, nilai jumlah tanpa dimensi) dalam proposal ini dapat disimpan sebagai bilangan bulat dengan menskalakannya sebesar 2 6 (65536). Angka dapat diberikan baik dalam bentuk ini, dengan akhiran f atau sebagai angka desimal tanpa akhiran. Dengan demikian, elemen hipotetis berikut mewakili nilai yang sama.
<fillwidth>0.25</fillwidth>
<fillwidth>16384f</fillwidth>
Kuantitas dengan akhiran f harus berupa bilangan buletin; angka pecahan tidak diizinkan. Bilangan bulat yang dihasilkan harus dapat direpresentasikan sebagai nomor yang ditandatangani pelengkap 32-bit 2; dengan demikian, rentang efektif representasi adalah 32768 (pada kenyataannya, kurang dari 32768 dan lebih besar dari atau sama dengan -32768.)
Implementasi yang sesuai diperlukan untuk mempertahankan nilai yang dinyatakan sebagai nilai f. Nilai yang dinyatakan sebagai angka desimal dapat dikonversi ke nilai f dan disimpan seperti itu. Aplikasi diizinkan untuk merekam nilai yang dihasilkan secara internal di unit yang sesuai; namun, nilai yang dibaca dari dokumen yang ada harus dipertahankan ke presisi asli penuh atau harus dikonversi menjadi nilai f.
Jika implementasi tidak dapat melakukan ini, itu harus memperingatkan pengguna bahwa data mungkin hilang. (Dapat diterima untuk mengeluarkan peringatan seperti itu sekali ketika data yang dihasilkan secara eksternal pertama kali ditemukan.)
Ketika nilai desimal dikonversi menjadi format f, implementasinya dapat menggunakan mode pembulatan aritmatika apa pun; namun, bilangan buletin harus dikonversi ke format f dengan tepat. Disarankan agar implementasi dikonversi dengan membulatkan ke minus tak terbatas dan bahwa konversi selalu tepat.
ordinat
ordinate
<!entity % ordinate "#pcdata" -- or nmtoken in an attribute -- >
Unit sistem koordinat yang ditetapkan oleh koord adalah dari beberapa jenis nominal, yang disebut sebagai ordinat. Ini adalah ukuran panjang, tetapi hanya digunakan dalam kaitannya dengan persegi panjang yang ditetapkan koord. Nilai jenis ordinat apa pun akan diskalakan oleh nilai w dan h dari koord dan rasio yang dihasilkan yang digunakan untuk menetapkan pengukuran nyata pada perangkat output.
Implementasi yang sesuai harus dapat menangani nilai ordinat hingga 30 bit plus tanda (yaitu, bilangan bulat bertanda tangan 31-bit, bukan bilangan bulat bertanda tangan 32-bit). Namun, disarankan bahwa implementasi mencoba menghasilkan koordinat untuk jalur dan elemen serupa yang memiliki sekitar 16 bit presisi. Ini akan meminimalkan kemungkinan aliran bawah atau luapan dalam implementasi yang tidak sesuai.
nilai ordinat selalu integral. Titik desimal mungkin tidak muncul dalam nilai jenis ordinat. Tidak ada penentu unit yang dapat ditambahkan ke nilai jenis ordinat.
length
length
<!entity % length "#pcdata" -- or nmtoken in an attribute -- >
Panjangnya adalah pengukuran dunia nyata atau, terkadang, pengukuran dalam piksel perangkat. Disarankan agar implementasi menghindari penggunaan piksel perangkat (px).
Semua kualifikasi unit CSS1 standar diizinkan dengan panjang. Selain itu, emu kualifikasi dapat digunakan. Kualifikasi ini mengacu pada unit -- EMU (English Metric Unit) -- yang merupakan denominator umum dari jumlah pengukuran dalam penggunaan luas dalam grafik komputer. EMU adalah inci / 914400, yaitu, ada 914400 EMU per inci. Tabel berikut mencantumkan jumlah EMUs dalam sejumlah kecil unit yang umum ditemui.
| Jumlah EMU | Angka per Inci | Angka per Milimeter | Deskripsi |
|---|---|---|---|
| 360 | 0.01 | Win32 HIMETRIC | |
| 12700 | 72 | "titik" | |
| 635 | 1440 | Win32 TWIP | |
| 762 | 1200 | Printer resolusi tinggi |
Jumlah fraksional EMU tidak diizinkan. Pengukuran apa pun harus dapat diwakili sebagai jumlah integral EMUs yang ditandatangani 32-bit -- ini membatasi besarnya pengukuran hingga 2348 inci -- sekitar 59 meter atau 65 meter. Karena pengukuran selalu mengacu pada ukuran penyajian pada perangkat output berukuran layar atau halaman secara nominal, mereka akan selalu berada dalam rentang ini.
Perhatikan, bagaimanapun, bahwa representasi tidak pantas untuk pengukuran dunia nyata dan di mana ini dicatat (misalnya, untuk merekam ukuran jalur dunia nyata) beberapa representasi lain harus digunakan.
Implementasi yang sesuai diperlukan untuk mempertahankan nilai yang merupakan jumlah EMU yang tepat. Nilai yang diwakili dengan cara lain dapat dikonversi ke nilai EMU dan disimpan seperti itu. Aplikasi diizinkan untuk merekam nilai yang dihasilkan secara internal di unit yang sesuai; namun, nilai yang dibaca dari dokumen yang ada harus dipertahankan ke presisi asli penuh atau harus dikonversi menjadi nilai EMU.
Jika implementasi tidak dapat melakukan ini, itu harus memperingatkan pengguna bahwa data mungkin hilang. (Dapat diterima untuk mengeluarkan peringatan seperti itu sekali ketika data yang dihasilkan secara eksternal pertama kali ditemukan.)
Dalam praktiknya, panjang fisik digunakan untuk pengukuran yang relatif sedikit dalam proposal ini. Data yang biasanya paling penting adalah data jalur dan ini dikodekan dalam sistem koordinat yang ditentukan, berdasarkan per bentuk, dengan koord.
Representasi alternatif
Representasi panjang standar HTML ditentukan oleh CSS1 . Unit relatif, dengan pengecualian piksel, tidak bermakna dalam konteks di mana panjang digunakan dalam proposal ini dan tidak boleh digunakan. Jika dokumen merekam ukuran piksel yang dimaksudkan (target), ini menentukan terjemahan piksel ke dalam EMU; jika tidak, default 90 dpi yang ditentukan oleh CSS1 harus digunakan.
Dengan pengecualian emu, nilai apa pun dapat diberikan sebagai pecahan desimal. Ketika nilai desimal dikonversi ke EMU, implementasinya dapat menggunakan mode pembulatan aritmatika apa pun. (Satu-satunya cara bagi aplikasi penulisan untuk menjamin hasil tertentu adalah dengan menentukannya dalam emu.)
Jika tidak ada penentu unit yang diberikan dalam nilai panjang, implementasi harus mengasumsikan emu.
measure
measure
<!entity % measure "#pcdata" -- or nmtoken in an attribute -- >
Ukuran adalah kuantitas yang mungkin panjang atau pecahan. Ini sangat menyerupai pengukuran panjang HTML dan CSS, yang dapat, dalam banyak kasus, baik pengukuran fisik atau persentase dari beberapa kuantitas lainnya. Jika tidak ada penentu unit yang diberikan, nilai harus diasumsikan sebagai pecahan desimal (dengan demikian, perilaku ini diwarisi dari pecahan, bukan dari panjang.)
Tidak seperti panjang, nilai piksel memiliki arti yang ditentukan konteks, sehingga konversi ke emu biasanya tidak pantas. Ada tiga kemungkinan representasi mendasar yang harus dipertahankan implementasi (yaitu, satu representasi tidak dapat dikonversi menjadi representasi lain tanpa kehilangan informasi).
- Nilai pecahan harus dipertahankan dalam format pecahan (nilai " f ").
- Panjang fisik harus dipertahankan dalam EMU.
- Nilai piksel harus dipertahankan sebagai jumlah keseluruhan piksel.
Jumlah piksel pecahan tidak diizinkan.
Representasi alternatif
Semua representasi alternatif dari pecahan dan panjang diizinkan.
Sudut
angle
<!entity % angle "#pcdata" -- or nmtoken in an attribute -- >
Representasi mendasar dari sudut adalah sejumlah derajat yang dikalikan dengan 2 6 (65536) dan disimpan sebagai bilangan bulat. Karena ruang koordinat terbalik (sumbu y positif turun), sudut searah jarum jam positif. Implementasi yang sesuai diperlukan untuk mempertahankan presisi penuh dari nilai tersebut.
Implementasi diizinkan untuk menggunakan rentang apa pun untuk sudut dan diizinkan untuk menormalkan sudut (misalnya ke -180 hingga +180 atau 0 hingga 360 ). Implementasi tidak diharuskan konsisten; namun, representasi integral sudut tidak boleh melebihi rentang bilangan bulat bertanda tangan 32-bit.
Akhiran fd digunakan untuk mengidentifikasi representasi sudut (derajat pecahan) ini. Perhatikan bahwa ini dibedakan dari akhiran f untuk fraksi tanpa dimensi meskipun aritmatika identik dapat digunakan untuk mendukungnya. Default untuk nilai sudut adalah derajat sederhana, yaitu, nilai yang tidak terskalakan. Ini juga dapat disinyalir dengan akhiran " " (simbol derajat); namun, penggunaan ini tergantung pada memiliki pengodean dokumen yang sesuai -- akibatnya, akhiran deg juga didefinisikan ke derajat rata-rata. Set lengkap kemungkinan cukupnya adalah sebagai berikut.
| Akhiran | Faktor Konversi | Komentar |
|---|---|---|
| Fd | 1 | Representasi internal presisi tinggi |
| tidak ada, deg, | 65536 | Degrees |
| Rad | 65536pi/180 | Radians |
Representasi alternatif
Transformasi penskalaan memiliki penghentian pada kelipatan ganjil 45 . Oleh karena itu, sangat penting bagi konversi kuantitas yang tidak tepat untuk didefinisikan dengan baik. Untuk alasan ini, aritmatika konversi didefinisikan untuk membulatkan ke arah minus tak terbatas.
Karena ini mungkin sulit atau tidak mungkin dijamin dalam beberapa implementasi, penggunaan berikut didefinisikan menjadi fitur tingkat 3:
- Nilai tingkat pecahan apa pun.
- Nilai radian apa pun
Dengan demikian, nilai nilai fd yang memenuhi syarat dan nilai integral yang tidak memenuhi syarat, atau nilai integral yang memenuhi syarat atau harus ditangani persis oleh implementasi tingkat 0 yang sesuai; nilai lain tidak perlu. Sangat disarankan agar implementasi apa pun menangani konversi dari nilai derajat pecahan ke nilai derajat yang diskalakan (fd) persis. Ini dapat dilakukan tanpa dukungan floating point.
Persyaratan yang lebih tepat untuk konversi membedakan fd dari f.
color
c
<!element c %color;>
Warna adalah bagian penting dari grafik komputer modern. Proposal menggunakan metode yang ditetapkan untuk menentukan warna tetap. Namun, warna dalam diagram jarang berwarna statis sederhana; mereka sering berasal dari elemen lain dalam diagram. Sebagian besar informasi ini sangat spesifik untuk aplikasi, sehingga proposal ini menyediakan dua mekanisme yang sangat mendasar untuk menentukan perilaku seperti itu:
- Warna dapat berasal dari warna lain dalam bentuk yang sama.
- Sejumlah kecil operasi aritmatika didefinisikan untuk mendapatkan, atau memodifikasi, warna.
Mekanisme bentuk prototipe melengkapi ini dengan memungkinkan prototipe didefinisikan dari mana warna dapat diwariskan.
color
<!entity % color "( %color-unit; | pure | %color.adjustment; )*">
Nilai warna adalah superset dari definisi warna CSS1 . Ekstensi memungkinkan nilai warna RGB ditentukan dari warna lain dalam bentuk atau dari skema warna keseluruhan yang ditentukan menggunakan CSS1.
Jika nilai elemen didefinisikan sebagai warna, konten elemen menentukan nilai warna dengan cara token warna tunggal yang secara opsional dimodifikasi oleh operasi aritmatika pada warna RGB yang sesuai.
Unit warna
Serangkaian token warna lengkap berasal dari berbagai sumber: HTML, CSS1, dan proposal ini. Mereka didefinisikan sebagai berikut menggunakan notasi dari CSS1 atau notasi XPointer yang ditentukan untuk penautan XML.
Dalam definisi XPointer, sumber lokasi adalah elemen yang berisi nilai warna, dan ekspresi mengacu pada seluruh set elemen bentuk seolah-olah elemen prototipe dasar telah digabungkan dengan bentuk. Ketika elemen yang sesuai tidak ada, nilai default untuk elemen tersebut digunakan di tempatnya.
| Warna | Definisi | Tingkat | Deskripsi |
|---|---|---|---|
| nama | Lihat di bawah ini | 0 | Nama warna HTML, seperti yang tercantum dalam tabel di bawah ini. |
| #rr'gg'bb' | #rr'gg'bb' | 0 | Representasi warna CSS1/sRGB standar menggunakan nilai dalam rentang 0,.255 yang diwakili menggunakan masing-masing 2 digit heksadesimal. |
| #rgb | #rrggbb | 1 | Formulir CSS1 yang dipersingkat hanya dengan tiga digit heksadesimal. |
| rgb(r,g,b) | #(r)(g)(b) | 1 | Formulir CSS1 rgb; elemen nilai rgb dikonversi seperti yang didefinisikan dalam CSS1 . |
| fill | leluhur(1,bentuk) child(1, fill) child(1, color) |
1 | Warna isian latar depan bentuk. |
| fillBack | leluhur(1,bentuk) child(1, fill) child(1, back) child(1, color) |
1 | Warna latar belakang isian bentuk. |
| line | leluhur(1,bentuk) child(1, line) child(1, color) |
1 | Warna garis latar depan bentuk. |
| lineBack | leluhur(1,bentuk) child(1, line) child(1,back) child(1, color) |
1 | Warna garis latar belakang bentuk. |
| lineOrFill | baris, isi | 1 | Nilai baris jika tidak default, jika tidak, nilai isian. Ini secara efektif mengembalikan warna yang berada di tepi bentuk. |
| fillThenLine | isi, garis | 1 | Nilai isian jika tidak default, jika tidak, nilai baris. Ini secara efektif mengembalikan warna bentuk utama (jika bentuk tidak terisi, hasilnya akan menjadi warna garis). |
| Bayangan | leluhur(1,bentuk) child(1, shadow) child(1, color) |
2 | Warna bayangan (ini adalah fitur tingkat 2). |
| skema | Lihat di bawah ini | 1 | Warna skema dari skema yang ditentukan untuk dokumen; lihat di bawah ini. |
| skema(indeks) | Lihat di bawah ini | 1 | Indeks warna skema, mulai dari 0; lihat di bawah ini. |
| ini | Tersirat | 2 | Operasi (mengisi jalur, atau menggambarnya) didefinisikan dengan cara lain (misalnya, sebagai bitmap), dan warna menentukan "modifikasi" pada warna yang begitu tersirat. |
| palet(indeks) | Tersirat | 3 | Berulah dengan cara yang sama seperti ini, kecuali bahwa tepat satu entri dalam tabel warna bitmap diidentifikasi. Hanya diizinkan jika dinyatakan secara eksplisit. |
| tidak ada | - | 2 | Menunjukkan tidak adanya warna; dapat digunakan untuk membatalkan operasi menggambar yang menggunakan warna. |
| sistem | Lihat di bawah ini | 3 | Warna yang ditentukan oleh antarmuka pengguna sistem. |
Warna ini memungkinkan nilai warna untuk menentukan modifikasi pada warna yang diturunkan dengan cara lain; khususnya, satu operasi dapat ditentukan untuk semua warna dalam bitmap. Warna palet(indeks) mengidentifikasi entri tertentu dalam bitmap yang dipetakan palet. Penggunaan ini hanya didefinisikan untuk merekam entri tabel warna yang harus dianggap transparan dalam bitmap seperti itu.
Definisi nilai warna tidak boleh merujuk ke dirinya sendiri, baik secara langsung maupun tidak langsung. Jika definisi seperti itu ditemui, disarankan, tetapi tidak diperlukan, bahwa implementasi memperlakukan nilai yang tidak ditentukan sebagai hitam.
Warna HTML
HTML mendefinisikan enam belas nama warna berikut:
Nama warna dan nilai sRGB

Hitam = "#0000000"

Hijau = "#008000"

Silver = "#C0C0C0"

Kapur = "#00FF00"

Abu-abu = "#808080"

Zaitun = "#808000"

Putih = "#FFFFFF"

Kuning = "#FFFF00"

Maroon = "#800000"

Navy = "#000080"

Merah = "#FF0000"

Biru = "#0000FF"

Ungu = "#800080"

Teal = "#008080"

Fuchsia = "#FF00FF"

Aqua = "#00FFFF"
Warna skema
Warna skema yang dirujuk oleh skema ditentukan pada tingkat dokumen menggunakan tag meta dengan atribut nama "Skema Warna Tema".
<meta name="Theme Color Scheme"
content="rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb">
Tag ini memungkinkan hingga delapan warna skema didefinisikan. Warna yang tidak terdefinisi harus default ke hitam. Warna skema memungkinkan skema warna yang digunakan untuk dokumen lengkap diubah hanya dengan mengubah konten Skema Warna Tema. Untuk memastikan bahwa grafik yang diimpor dari aplikasi penulisan yang berbeda menggunakan warna skema yang konsisten, interpretasi berikut didefinisikan. "Penggunaan" adalah deskripsi singkat tentang tujuan, dan kolom "deskripsi" memberikan detail tambahan.
| Indeks | Nama | Penggunaan | Deskripsi |
|---|---|---|---|
| 0 | scheme.background | Latar belakang | Warna yang digunakan untuk latar belakang grafik (dan, sering, untuk seluruh halaman). |
| 1 | scheme.text | Teks dan baris | Warna untuk teks yang dilampirkan ke bentuk dan warna garis standar. |
| 2 | scheme.shadow | Bayangan | Warna bayangan standar -- warna yang biasanya digunakan untuk bayangan bentuk. |
| 3 | scheme.title | Teks judul | Warna yang digunakan untuk teks judul atau judul. |
| 4 | scheme.fill | Mengisi | Warna isian standar -- warna yang biasanya digunakan untuk mengisi bentuk. |
| 5 | scheme.accent | Aksen | Warna "sorotan" normal yang digunakan untuk menekankan elemen penting dari grafik. |
| 6 | scheme.hyperlink | Aksen dan hyperlink | Sorot warna yang digunakan untuk hyperlink. Dapat digunakan untuk tujuan lain di mana warna menunjukkan tautan ke informasi lain. |
| 7 | scheme.followed | Aksen dan hyperlink yang diikuti | Sorot warna untuk hyperlink yang diikuti; juga sesuai untuk tautan "mundur". |
Warna skema dapat disebut dengan nama atau indeks, sehingga scheme.fill dan skema(4) berwarna sama.
Warna skema tidak berpartisipasi dalam skema default jika warna tidak ditentukan. Warna isian yang tidak ditentukan harus selalu ditafsirkan sebagai putih, terlepas dari warna warna skema 4. Warna "aksen" harus kontras dengan latar belakang (0) dan warna isian (4), dan warna teks dan judul teks harus memiliki properti yang sama. Salah satu teknik standar adalah membuat aksen berwarna dan teks standar tidak berwarna (biasanya hitam atau putih).
Warna sistem
Aplikasi terkadang merekam warna berdasarkan pengaturan sistem operasi dalam grafik. Biasanya ini bersifat sementara dan tidak perlu ditulis; definisi thesystemcolor hanya ada untuk mendukung ini. Warna sistem diperkenalkan dengan menentukan tag yang sesuai di namespace layanan baru dan menyisipkan informasi yang sesuai dalam konten elemen.
Proposal ini mendefinisikan tag seperti itu untuk mengodekan warna antarmuka pengguna Windows yang ditentukan dalam file header winuser.h.
win.color
<!element win.color #pcdata>
Konten elemen adalah bilangan bulat tunggal yang berisi nilai COLOR_ relevan yang ditentukan dari winuser.h. Teknik serupa dapat diadopsi untuk spesifikasi warna khusus sistem atau aplikasi apa pun. Sangat disarankan agar fitur ini hanya digunakan untuk kompatibilitas mundur.
Warna murni
pure
<!elementpure empty>
Jika elemen <murni/> muncul dalam nilai warna, itu adalah petunjuk bahwa warna tidak boleh diperkirakan oleh pola dither. Ini adalah fitur tingkat 1, dan implementasi yang sesuai tidak perlu menghormatinya. Penetapan ini penting untuk grafis yang ditampilkan pada perangkat resolusi sedang, seperti tampilan video, di mana fitur kecil (seperti garis) dapat menyebabkan alias buruk dengan warna yang diterjemahkan. Pada perangkat seperti printer, yang biasanya menghilangkan semua warna kecuali untuk beberapa warna yang sepenuhnya jenuh, pencairan biasanya cukup baik untuk menghindari masalah ini.
Penyesuaian warna
Warna dasar dapat disesuaikan dengan operasi aritmatika pada nilai RGB. Operasi ini didefinisikan menggunakan elemen tambahan dalam nilai warna. Penyesuaian tersebut hanya berguna ketika diterapkan pada warna yang berasal dari elemen lain. Valid untuk menentukan penyesuaian tersebut pada nilai warna tetap; namun, implementasi diizinkan untuk mengurangi ini ke nilai RGB yang sesuai dan menyimpannya alih-alih aslinya.
Semua fitur penyesuaian warna yang dijelaskan di bagian ini adalah fitur tingkat 1.
color.adjustment
<!entity % color.adjustment -- change to make to a color --
"( %color.op; )?, ( %color.adj; )*"
>
color.op
<!entity % color.op -- arithmetic operation --
"( darken | lighten | add | subtract | reverseSubtract |
blackWhite )"
>
<!element darken %color.parameter;>
<!element lighten %color.parameter;>
<!element add %color.parameter;>
<!element subtract %color.parameter;>
<!element reversesubtract %color.parameter;>
<!element blackwhite %color.parameter;>
color.parameter
<!entity % color.parameter "#pcdata" >
color.adj
<!entity % color.adj -- additional adjustment to color --
"invert | invert128 | gray"
>
<!element invert empty>
<!element INVERT128 empty>
<!element gray empty>
Parameter dari enam operasi pertama adalah satu nilai numerik integral dalam rentang 0 hingga 255. Penyesuaian dilakukan pada nilai RGB 3x8bit sebagai berikut:
Jika <abu-abu/> ditentukan, nilai RGB digantikan oleh yyy, di mana y adalah nilai luminance (y') yang dihitung dari nilai sRGB dalam mengikuti ITU-r BT.709. Perhitungan ini adalah:
y = 0 2125xr + 0 7154xg + 0 0721xbJika modifikasi color.op diberikan, setiap komponen secara terpisah disesuaikan sesuai dengan tabel di bawah ini. c adalah nilai komponen, dan p adalah nilai color.parameter.
Operasi Rumus Menggelapkan c := cxp/255 Meringankan c := 255 - (255-c)xp/255 tambahkan c := c + p Mengurangi c := c - p reversesubtract c := p - c blackwhite jika c < p thenc := 0elsec := 255 Dalam setiap kasus, jika nilai komponen yang dihitung, c, melebihi 255, maka 255 digunakan, dan jika kurang dari 0, maka 0 digunakan.
Jika <INVERT128/> diberikan, nilai 128 dikurangi atau ditambahkan ke setiap komponen sesuai dengan apakah komponen kurang dari 128 atau tidak.
if c < 128 then c := c + 128 else c := c - 128Jika <invert/> diberikan, setiap komponen diganti dengan 255 dikurangi nilai komponen.
c := 255-c
font
font
<!element font any>
<!attlist font
style cdata #implied>
Font diidentifikasi menggunakan atribut gaya seperti yang didefinisikan dalam bagian CSS1 5.2 (properti font) . Isi elemen font, saat ini, tidak ditentukan tetapi dapat digunakan di masa depan untuk mengodekan informasi font standar. Implementasi awal proposal ini harus mempertahankan tetapi tidak menginterpretasikan informasi.
Dapat dibayangkan bahwa dukungan akan ditambahkan di masa mendatang untuk informasi font di luar baris (font yang dapat diunduh, atau sumber daya font bersama). Ini akan dilakukan oleh elemen xml-link dalam konten elemen font, memastikan kompatbilitas mundur dengan implementasi awal.
Bitmap
bitmap
<!element bitmap empty>
<!attlist bitmap
XML-link cdata #fixed "simple"
href cdata #REQUIRED
title cdata #implied
behavior cdata #implied
show (embed|replace|new) #fixed "embed"
inline (true|false) #fixed "true"
actuate (auto|user) #fixed "auto"
>
Elemen bitmap memungkinkan referensi ke sumber daya gambar di luar baris (biasanya bitmap) untuk disertakan dalam grafik.
bitmap adalah fitur tingkat 1.
Atribut perilaku dapat digunakan untuk menunjukkan bagaimana bitmap harus ditangani oleh aplikasi pengeditan. Nilainya mungkin salah satu atau kedua token berikut.
| Token | Deskripsi |
|---|---|
| Terpisah | Menandai bitmap sebagai entitas terpisah, yang tidak boleh dianggap sebagai bagian integral dari dokumen. Bitmap tidak boleh disimpan dengan dokumen. Jika dokumen disalin, bitmap tidak boleh disalin; jika dokumen dipindahkan, bitmap tidak boleh dipindahkan dengannya. |
| original | Atribut judul mengidentifikasi lokasi asli bitmap sebagai URL; jika tidak, arti judul tidak ditentukan. |
Nilai-nilai ini adalah petunjuk tentang perilaku yang diharapkan. Opsi terpisah mengacu pada perilaku data yang dimaksud oleh href. Jika terpisah dan asli diberikan, aplikasi diharapkan untuk mengabaikan href URI dan meregenerasi bitmap dari data asli. Jika hanya asli yang diberikan, aplikasi diharapkan menggunakan URI href untuk menemukan bitmap tetapi dapat memberi pengguna opsi untuk meregenerasinya.
Ini valid untuk membuat href URI dan atribut judul nilai yang sama (leksikal) -- ini sesuai jika bitmap yang direferensikan tidak "disimpan dengan" dokumen. Ini dimaksudkan (meskipun tidak diperlukan) bahwa href digunakan untuk salinan bitmap dokumen sendiri -- yang dapat dihapus jika bentuk referensi dihapus -- dan judul tersebut digunakan untuk menunjukkan salinan bersama. Dengan demikian, jika keduanya berisi nilai yang sama, tidak ada salinan khusus dokumen.
Aplikasi dapat mengabaikan petunjuk jika tidak sesuai dengan model penyimpanan aktual data XML.
Format file gambar
Dalam konteks proposal ini, data eksternal selalu berupa bitmap atau file yang digunakan untuk menghasilkan bitmap. Pada tingkat render 0, tidak ada format bitmap eksternal yang perlu didukung -- jalur hanya dapat diisi dengan warna solid. Untuk merender set lengkap isi tingkat render 1, bitmap perlu didukung. Render tingkat 1 mencakup (hanya) format berikut:
- JFIF, yaitu data format ISO/IEC 10918 yang disematkan dalam file dengan header JFIF (yang mungkin dianggap sebagai penanda APP0 tertentu setelah pembuat SOI) dan termasuk (hanya) rentang format JPEG yang didukung oleh kode IJG v6.
- PNG, seperti yang didefinisikan oleh spesifikasi PNG versi 1.0.
Render tingkat 2 juga menyertakan dukungan untuk hal berikut:
- GIF, sebagaimana didefinisikan oleh spesifikasi GIF yang diterbitkan oleh CompuServ pada tahun 1987 (biasanya disebut sebagai "GIF87a"). GIF89a juga harus didukung pada tingkat ini, tunduk pada pembatasan bahwa data tidak boleh berisi blok ekstensi apa pun yang memerlukan interpretasi untuk menampilkan bitmap selain ekstensi kontrol grafiswithouta persyaratan untuk input pengguna atau waktu penundaan. Ini memungkinkan komentar disertakan, tetapi bukan ekstensi teks biasa. Aplikasi dapat menyisipkan ekstensi aplikasi (0x21, 0xFF) tetapi, menggunakan terminologi proposal ini, ini hanya boleh berisi pengeditan, bukan penyajian, data.
Format data lain yang digunakan dalam grafik memaksa grafik tersebut setidaknya mengedit tingkat 3 dan mungkin merender tingkat 3 (jika data diperlukan untuk merender grafik). Aplikasi didorong untuk menerbitkan format yang didukungnya. Misalnya, Microsoft Office mendukung format tambahan berikut secara asli dan karenanya dapat menulis data pengeditan dalam formulir ini:
- WMF -- Metafile Windows (format Win 3.1)
- EMF -- Metafile "ditingkatkan" Windows (format Win32)
- PICT -- File PICT QuickDraw MAC OS (semua versi tetapi tanpa catatan QuickTime atau ekstensi lainnya)
- BMP -- Format file bitmap Windows, "os/2" (BITMAPCORE), BITMAPINFO, BITMAPV4, dan format BITMAPV5
Vektor
v
<!element v "( #pcdata | p )*">
Jalur grafis vektor dikodekan sebagai pcdata. Konten elemen v dicampur, berisi deskripsi jalur vektor yang secara opsional diparameterkan dengan elemen p.
Kembali ke atas