intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Cấu trúc ảnh PCX

Chia sẻ: Asg Ahsva | Ngày: | Loại File: PDF | Số trang:4

102
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cấu trúc file ảnh PCX I. Data of Image 1. ảnh 24 bit  Mỗi điểm ảnh chiếm 3 byte mô tả ba thành phần: Red, Green, Blue. 2. ảnh 256 màu  Dữ liệu mỗi điểm ảnh chiếm 1 byte, chỉ số hiệu màu của điểm ảnh này. Màu của điểm ảnh được mô tả trong bảng màu. Giả sử byte mô tả điểm ảnh có giá trị là b, bảng màu được chứa trong mảng P, thì thành phần các màu của điểm ảnh này là P[b].R, P[b].G, P[b].B. ...

Chủ đề:
Lưu

Nội dung Text: Cấu trúc ảnh PCX

  1. F ile ¶nh PCX NÕu ta h×nh dung trong mét tÖp ¶nh xÕp liªn tiÕp c¸c byte tõ ®Çu ®Õn c uèi vµ dån chóng vµo trong mét hép ch÷ nhËt, th× cã thÓ h×nh dung tÖp ¶nh P CX nh­ h×nh vÏ sau: H ×nh 1. CÊu tróc file ¶nh PCX I . Data of Image 1. ¶nh 24 bit  M ç i ®iÓm ¶nh chiÕm 3 byte m« t¶ ba thµnh phÇn: Red, Green, Blue. 2. ¶nh 256 mµu  D ÷ liÖu mçi ®iÓm ¶nh chiÕm 1 byte, chØ sè hiÖu mµu cña ®iÓm ¶nh n µy. Mµu cña ®iÓm ¶nh ®­îc m« t¶ trong b¶ng mµu. Gi¶ sö byte m« t¶ ®iÓm ¶nh cã gi¸ trÞ lµ b, b¶ng mµu ®­îc chøa trong m¶ng P, th× thµnh phÇn c¸c mµu cña ®iÓm ¶nh nµy lµ P[b].R, P[b].G, P[b].B.  D ÷ liÖu ®­îc nÐn theo thuËt to¸n RUN_LENGTH víi 2 bit cao lµm cê 3. ¶nh 16 mµu  M çi ®iÓm ¶nh ®­îc m« t¶ bëi mét con sè, cã gi¸ trÞ tõ 0 ®Õn 15. D o vËy, gi¸ trÞ mçi ®iÓm ¶nh chØ cÇn 4 b it ®Ó m« t¶.  D ÷ liÖu ¶nh ®­îc m· ho¸ theo mÆt ph¼ng bit, sau ®ã nÐn theo thuËt to¸n RUN- LENGTH víi 2 bit cao lµm cê.
  2. I I. Color Palette (B¶ng mµu) 1. ¶nh 24 bit: T Öp ¶nh kh«ng cã b¶ng mµu 2. ¶nh 256 mµu  B ¶ng mµu chiÕm 256*3=768 byte, ®­îc ®Æt ë cuèi tÖp  M çi mµu ®­î c m« t¶ bëi 3 byte, thÓ hiÖn c¸c thµnh phÇn: RED, G REEN vµ BLUE.  G i¸ trÞ cña c¸c thµnh phÇn RED, GREEN vµ BLUE ®­îc l­u tr÷ ë 6 b it cao. 3. ¶nh 16 mµu  B ¶ng mµu chiÕm 16*3=48 byte  M çi mµu ®­îc m« t¶ bëi 3 byte, thÓ hiÖn c¸c thµnh phÇn: RED, G REEN vµ BLUE.  G i¸ trÞ cña c¸c thµnh phÇn BLUE, GREEN vµ RED ®­îc l­u tr÷ ë 6 b it cao.  K h«ng phô thuéc vµo sè l­îng mµu, 48 byte cña b¶ng 16 mµu lu«n c ã mÆt trong phÇn Header. I II. Header H eader cña c¸c tÖp ¶nh PCX gåm 54 byte, ®­îc m« t¶ chi tiÕt trong b¶ng sau: F ile Header Sè ý n ghÜa N éi b ytes d ung 1 S ign 10 1 Version 1 E ncode 1 B itsPerPixel 4 X1,Y1 above -left co -ordinates of image 4 X2,Y2 below -right co - ordinates of image 2 H orizontal Discrimination (meter) 2 Vertical Discrimination (meter) 48 C olor Pal ette of 16 colors 1 Video Mode 1 Number of bit’s plane 2 Number of bytes per line (after encode bits p lanes) 60 Unused I V. Ch­¬ng tr×nh minh ho¹ ®äc ¶nh PCX 256 mµu
  3. 1. S ¬ ®å C h­¬ng tr×nh minh ho¹ chØ ®äc ¶nh 256 mµu. 1 . M ë tÖp ¶nh 2 . § äc 128 byte Header; DataPos := FilePos(F); 3 . S eeek(F,FileSize(F) - 768); §äc 768 byte B¶ng mµu 4 . K hëi t¹o chÕ ®é ®å ho¹ 5 . T ¹o d÷ liÖu b¶ng mµu 6 . N ¹p b¶ng mµu 7 . § äc vµ vÏ c¸c ®iÓm ¶nh: a . S eek(F,DataPos); b . S è ®iÓm ¶nh trªn dßng := Sè mÆt ph¼ng bit * Sè byte trªn d ßng; c . F or i:= Header.Y1 to H eader.Y2  L:=0;  W hile L < S è ®iÓm ¶nh trªn dßng D o a) § äc d÷ liÖu vµo byte B nÕu ch­a hÕt tÖp; b ) I f B >= 192 then  S LL := B - 1 92;  § äc tiÕp d÷ liÖu vµo byte B; E lse SLL:=1; c) F or i:=0 to SLL - 1 do PL[SLL+i]:=B; d ) S LL = L + SLL;  For j:=Header.X1 to Hea der.X2 Vex(j, i, PL[j]); 8 . § ãng tÖp ¶nh 2. Mét sè khai b¸o chÝnh H eader : Record S ign,Version,Encode,BitPerPixel : B yte; X1,Y1,X2,Y2, Hres,Vres : I nteger; P alette : A rray [0..15,1..3] of Byte; Vmode, Planes : B yte; B ytesPerLine : Integer; Unused : A rray [1..60] of Byte; E nd; Gi¶i nÐn theo RUN_LENGTH 1 . Sè ®iÓm ¶nh trªn dßng := Sè mÆt ph¼ng bit * Sè byte trªn dßng; 2 . L:=0; 3 . While L < S è ®iÓm ¶nh trªn dßng Do a. § äc d÷ liÖu vµo byte B nÕu ch­a hÕt tÖp;
  4. b . If B >= 192 then  S LL := B - 1 92;  § äc tiÕp d÷ liÖu vµo byte B; E lse SLL:=1; c. For i:=1 to SLL do PL[L+i]:=B; d . L = L + S LL; Gi¶i m· BIT_PLANE: 1 . I f (Sè mÆt ph¼ng bit =1) Then PC:=PL 2 . I f Sè mÆt ph¼ng bit >1 F or b it:=0 T o S è mÆt ph¼ng bit - 1 Do  d oan := bit *Sè byte trªn dßng;  F or t:=0 to Sè byte trªn dßng - 1 do * B :=PL[doan+t]; * F or i:=0 to 7 do I f (bit 7 - i cña B lµ 1) Then PC[8*t+i]:= PC[8*t+i] + (2 mò i); 1 24,214,56,157,198,212,202,12 1 24, 56,56,...,56,157,212,...,212,12,12,...,12 x 1, x 2, x3, ..., xn l1,d1,l2,d2,..., lk,dk 2 55,127
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2