锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍦╳kt妯℃嫙鍣ㄤ笂, 閫氳繃浠ヤ笅浠g爜鍙互姝g‘鐨勮鍑烘暟鎹?
conn = (SocketConnection) Connector.open(url, Connector.READ_WRITE, true);
is = conn.openDataInputStream();
os = conn.openDataOutputStream();
// 鍒涘緩鐧婚檰鎶ユ枃
loginPacketBytes = generateLoginPacket();
// 鍙戦佺櫥闄嗘姤鏂?br> // System.out.println("****鍙戦佺櫥闄嗘姤鏂?***");
os.write(loginPacketBytes, 0, loginPacketBytes.length);
os.flush();
// 鍏堣鍙朇onstantValue.HEADER_LENGTH涓瓧鑺?寰幆閬嶅巻瀵繪壘姝g‘鐨勯瓟鏁?br> recByteNum = is.read(recBytes, 0, ConstantValue.READ_LENGTH);
鑻ヤ粠鏈嶅姟鍣ㄧ湡鏄繑鍥炵殑瀛楄妭鏁版槸100涓瓧鑺? 鑰?font color=#0000ff>ConstantValue.READ_LENGTH瀹氫箟鐨勯暱搴﹀ぇ浜?00.
閭d箞鍦ㄦā鎷熷櫒涓婃病鏈夐棶棰? 鑳藉璇誨埌100涓瓧鑺?
浣嗘槸鍒頒簡鐪熸満涓婇潰嫻嬭瘯, 鑻ュ畾涔夌殑瑕佽鍙栫殑瀛楄妭鏁板ぇ浜庡疄闄呬紶閫佺殑瀛楄妭鏁? 閭e氨浼氬嚭鐜板紓甯告儏鍐?
|
灞炴у悕縐?/div>
|
灞炴т綔鐢?/div>
|
|
microedition.profiles
|
浠h〃鎵嬫満鏀寔鐨凪IDP鐗堟湰錛岃繑鍥炴牸寮忓間負“MIDP-1.0”鎴?#8220;MIDP-2.0”
|
|
microedition.configuration
|
浠h〃鎵嬫満鏀寔鐨凜LDC鐗堟湰錛岃繑鍥炴牸寮忓間負“CLDC-1.0”鎴?#8220;CLDC-2.0”
|
|
microedition.locale
|
浠h〃鎵嬫満鎵鍦ㄧ殑鍥藉鎴栧湴鍖猴紝榪斿洖鍊兼牸寮忎負“en-US”
|
|
microedition.platform
|
浠h〃鎵嬫満鐨勫搧鐗屽拰鍨嬪彿錛孨okia鎵嬫満鐨勮繑鍥炲兼牸寮忎負“Nokia6310i/4.42”
|
|
microedition.encoding
|
浠h〃鎵嬫満榛樿鐨勫瓧絎﹂泦鍚嶇О錛岃繑鍥炲兼牸寮忎負“ISO-8859-1”
|
|
microedition.commports
|
浠h〃鎵嬫満鍙互浣跨敤鐨勪覆鍙e垪琛紝榪斿洖鍊間腑鍚勪釜涓插彛涔嬮棿浣跨敤閫楀彿鍒嗛殧
|
|
microedition.hostname
|
MIDP2.0瀹氫箟錛屼唬琛ㄦ湰鍦頒富鏈哄悕縐幫紝闇瑕佹墜鏈烘敮鎸併?/div>
|
|
microedition.jtwi.version
|
浠h〃鎵嬫満鏀寔鐨凧TWI鐗堟湰錛屽煎繀欏繪槸“1.0”
|
|
灞炴у悕縐?/div>
|
灞炴т綔鐢?/div>
|
|
microedition.media.version
|
浠h〃鎵嬫満鏀寔鐨凪MAPI鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.pim.version
|
浠h〃鎵嬫満鏀寔鐨凱IM API鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.m3g.version
|
浠h〃鎵嬫満鏀寔鐨凪3G API鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.location.version
|
浠h〃鎵嬫満鏀寔鐨凩ocation API鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
Bluetooth.api.version
|
浠h〃鎵嬫満鏀寔鐨凚T API鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.io.file.
FileConnection.version
|
浠h〃鎵嬫満鏀寔鐨凢C API鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.global.version
|
浠h〃鎵嬫満鏀寔鐨凪obile Internationalization API(JSR-238)鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.chapi.version
|
浠h〃鎵嬫満鏀寔鐨凜H(Content Handler) API(JSR211)鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
microedition.sip.version
|
浠h〃鎵嬫満鏀寔鐨凷IP API鐗堟湰錛屽鏋滀笉鏀寔鍒欒繑鍥瀗ull
|
|
灞炴у悕縐?/div>
|
灞炴т綔鐢?/div>
|
|
supports.mixing
|
浠h〃鎵嬫満鏄惁鏀寔娣烽煶(鍚屾椂鎾斁澶氫釜Player)錛岃繑鍥炲間負“true”鎴?#8220;false”
|
|
supports.audio.capture
|
浠h〃鎵嬫満鏄惁鏀寔澹伴煶鎹曡幏(褰曢煶)錛岃繑鍥炲間負“true”鎴?#8220;false”
|
|
supports.video.capture
|
浠h〃鎵嬫満鏄惁鏀寔瑙嗛鎹曡幏(褰曞儚)錛岃繑鍥炲間負“true”鎴?#8220;false”
|
|
supports.recording
|
浠h〃鎵嬫満鏄惁鏀寔璁板綍(record)錛岃繑鍥炲間負“true”鎴?#8220;false”
|
|
audio.encodings
|
浠h〃鎵嬫満鏀寔鐨勫0闊蟲牸寮忥紝榪斿洖鍊兼牸寮忎負“encoding=audio/wav”錛屽涓牸寮忎箣闂翠嬌鐢ㄨ嚦灝戜竴涓┖鏍艱繘琛岄棿闅?/div>
|
|
video.encodings
|
浠h〃鎵嬫満鏀寔鐨勮棰戞牸寮忥紝榪斿洖鍊兼牸寮忎負“encoding=video/3gpp”錛屽涓牸寮忎箣闂翠嬌鐢ㄨ嚦灝戜竴涓┖鏍艱繘琛岄棿闅?/div>
|
|
video.snapshot.encodings
|
浠h〃鎵嬫満浣跨敤getSnapshot鏂規硶鑾峰緱鐨勮棰戝揩鐓ф牸寮忥紝榪斿洖鍊兼牸寮忎負“encoding=png”錛屽涓牸寮忎箣闂翠嬌鐢ㄨ嚦灝戜竴涓┖鏍艱繘琛岄棿闅?/div>
|
|
streamable.contents
|
浠h〃鎵嬫満鏀寔鐨勬祦濯掍綋鏍煎紡錛岃繑鍥瀗ull浠h〃涓嶆敮鎸?/div>
|
|
灞炴у悕縐?/div>
|
灞炴т綔鐢?/div>
|
|
fileconn.dir.photos
|
浠h〃鎵嬫満涓瓨鍌ㄧ収鐗囧拰鍏跺畠鍥劇墖鐨勭洰褰曪紝渚嬪“file:///c:/My files/ Images /”
|
|
fileconn.dir.videos
|
浠h〃鎵嬫満涓瓨鍌ㄨ棰戠殑鐩綍錛屼緥濡?#8220;file:///c:/My files/Video clips/”
|
|
fileconn.dir.tones
|
浠h〃鎵嬫満涓瓨鍌ㄥ0闊崇殑鐩綍錛屼緥濡?#8220;file:///c:/My files/Tones/”
|
|
fileconn.dir.memorycard
|
浠h〃鎵嬫満涓瓨鍌ㄥ崱鐨勬牴鐩綍銆備緥濡?#8220;file:///d:/”
|
|
fileconn.dir.private
(Nokia S40涓嶆敮鎸? |
浠h〃鎵嬫満涓璏IDlet鐨勭鏈夊伐浣滅洰褰曪紝渚嬪“file:///c:/System/MIDlets/[1015f294]/scratch”
|
|
fileconn.dir.photos.name
|
浠h〃鎵嬫満涓浘鐗囩洰褰曠殑鍚嶇О錛屼緥濡?#8220;Images”
|
|
fileconn.dir.videos.name
|
浠h〃鎵嬫満涓棰戠洰褰曠殑鍚嶇О錛屼緥濡?#8220;Video clips”
|
|
fileconn.dir.tones.name
|
浠h〃鎵嬫満涓0闊崇洰褰曠殑鍚嶇О錛屼緥濡?#8220;Sound clips”
|
|
file.separator
|
浠h〃鎵嬫満涓殑鏂囦歡鍒嗛殧絎︼紝渚嬪“/”
|
|
fileconn.dir.memorycard.name
|
浠h〃鎵嬫満涓瓨鍌ㄥ崱鐨勫悕縐幫紝渚嬪“Memory card”
|

BUILD FAILED
F:\MobileToDVR\menu\build.xml:89: Unable to compile source code for device [Generic/Midp2Cldc11]: Compile failed; see the compiler error output for details.
Total time: 8 seconds
璋冭瘯浜嗗崐澶╀篃娌℃湁鎵懼埌鍘熷洜, 鍚庢潵鍒板畼鏂圭綉绔欎笂闈笅杞戒簡涓涓柊鐗堟湰鐨凧2ME-POLISH(j2mepolish-2.0.1.jar), 鐒跺悗灝辨紜繍琛屼簡, 鎴戝師鏉ュ畨瑁呯殑鏄疛2ME Polish 2.0-RC4鐗堟湰.
鐜拌薄:
瀹夎JAVA搴旂敤紼嬪簭鍚?鎵嬫満閲嶅惎鍚?瀹夎鐨勭▼搴忓氨鎵撲笉寮.
|
CLDC鏍囧噯 瀹夎鐩綍 |
CLDC1.0 | CLDC1.1 |
| 鎵嬫満瀛樺偍 | 閲嶅惎鍚庡彲鐢?/td> | 閲嶅惎鍚庡彲鐢?/td> |
| 瀛樺偍鍗″瓨鍌?/td> | 閲嶅惎鍚庝笉鍙敤 | 閲嶅惎鍚庡彲鐢?/td> |
MIDP搴旂敤紼嬪簭鐨勬爣鍑嗘寔涔呭寲鏂規灝辨槸浣跨敤RMS銆俁MS綾諱技浜庝竴涓皬鍨嬫暟鎹簱錛孯ecordStore鐩稿綋浜庢暟鎹簱鐨勮〃錛屾瘡涓?#8220;琛?#8221;鐢辮嫢騫茶褰曪紙Record錛夋瀯鎴愶紝涓鏉¤褰曞氨鏄竴涓敤int琛ㄧず鐨勮褰曞彿RecordID鍜岀敤byte[]琛ㄧず鐨勫唴瀹廣傝褰曞彿鍙互鐪嬩綔鏄?#8220;涓婚敭”錛宐yte[]鏁扮粍瀛樺偍鍐呭銆?/p>
RMS鎻愪緵鐨勮褰曟搷浣滃彲浠ュ疄鐜版牴鎹甀D鐩存帴鑾峰緱璁板綍錛屾垨鑰呮灇涓懼嚭涓涓〃涓殑鎵鏈夎褰曘?/p>
鏋氫婦璁板綍鏄潪甯鎬綆鏁堢殑錛屽洜涓哄彧鑳芥瘮杈僢yte[]鏁版嵁鏉ョ‘瀹氳璁板綍鏄惁鏄墍闇鐨勮褰曘傞氳繃ID鑾峰緱璁板綍鏄珮鏁堣屾柟渚跨殑錛岀被浼間簬SQL璇彞“SELECT byteArrayData FROM recordStoreName WHERE RecordID=?”銆傜劧鑰岋紝閫氬父搴旂敤紼嬪簭寰堥毦鐭ラ亾鏌愭潯璁板綍鐨処D鍙鳳紝鑰孯MS璁板綍鐨?#8220;涓婚敭”鍙堜粎闄愪簬int綾誨瀷錛屾棤娉曚嬌鐢ㄥ叾浠栫被鍨嬪String浣滀負“涓婚敭”鏉ユ煡鎵俱傚洜姝わ紝瀵逛簬闇瑕佸瓨鍙栦笉鍚岀被鍨嬪璞$殑搴旂敤紼嬪簭鑰岃█錛屽氨闇瑕佷竴涓伒媧葷殑RMS鎿嶄綔妗嗘灦銆?/p>
鎴戜滑鐨勫熀鏈鎯蟲槸錛屽鏋滆兘浣跨敤String浣滀負“涓婚敭”鏉ユ煡鎵捐褰曪紝灝辮兘闈炲父鏂逛究鍦拌幏寰楁墍闇鐨勫唴瀹廣備緥濡傦紝搴旂敤紼嬪簭璁劇疆鍙互閫氳繃"sys.settings"鑾峰緱byte[]鏁扮粍錛屽茍渚濇璇誨彇鍑鴻緗紝鐢ㄦ埛鐧誨綍淇℃伅鍙互閫氳繃"user.info"鑾峰緱byte[]鏁扮粍錛屽啀鍒嗚В鍑虹敤鎴峰悕鍜屽彛浠ゃ?/p>
鍥犳錛屾垜浠疄鐜頒竴涓猄torageHandler綾伙紝鎻愪緵鍞竴鐨凴MS璁塊棶鎺ュ彛錛屼嬌寰楀叾浠栫被瀹屽叏涓嶅繀鑰冭檻搴曞眰鐨凴MS鎿嶄綔錛屽彧闇鎻愪緵鑳芥爣璇嗚嚜韜殑涓涓猄tring鍗沖彲銆?/p>
濡傛灉鎴戜滑鑳藉疄鐜頒竴縐嶇被浼間簬鏁版嵁搴撶儲寮曠殑鏌ユ壘琛紝灝辮兘鏍規嵁String鍏抽敭瀛楁煡鎵炬煇鏉¤褰曘傚洜姝わ紝鎴戜滑浣跨敤涓涓悕涓?index"鐨凴ecordStore鏉ュ瓨鍌ㄦ墍鏈夌殑绱㈠紩錛屾瘡涓鏉$儲寮曢兘鎸囧悜鏌愪竴鏉″叿浣撹褰曠殑ID錛岃璁′竴涓狪ndexEntry琛ㄧず涓鏉$儲寮曪細
class IndexEntry {
private int selfId; // IndexEntry鐨処D
private int recordId; // 瀵瑰簲璁板綍鐨処D
private String key; // 璁塊棶璁板綍鐨凨ey
}
鏍規嵁绱㈠紩鏌ユ壘錛屽垎3姝ヨ繘琛岋細
1錛庡湪鍚嶄負"index"鐨凴ecordStore涓牴鎹甋tring鏌ユ壘瀵瑰簲鐨処ndexEntry銆?br>2錛庡彇鍑篒ndexEntry錛岃幏寰楄褰旾D鍙楓?br>3錛庢牴鎹甀D鍙瘋幏寰楀彟涓涓猂ecordStore鐨勮褰曪紝鐒跺悗灝卞彲浠ヨ鍙栥佹洿鏂板拰鍒犻櫎璇ヨ褰曘?/p>
濡備笅鍥炬墍紺猴細

鐢變簬IndexEntry淇濆瓨鐨勬暟鎹緢灝戯紝涓轟簡鍔犲揩鏌ユ壘閫熷害錛屽彲浠ュ湪搴旂敤紼嬪簭鍚姩鏃訛紝鎶婃墍鏈夌殑IndexEntry璇誨叆涓涓猇ector錛屽湪鍚庨潰鐨勬搷浣滀腑鏇存柊榪欎釜Vector騫朵笌RecordStore淇濇寔鍚屾銆?/p>
涓轟簡澶勭悊涓嶅悓綾誨瀷鐨勬暟鎹紝鎵鏈夊彲閫氳繃StorageHandler瀛樺彇鐨勭被閮藉繀欏誨疄鐜頒竴涓猄torable鎺ュ彛錛?/p>
public interface Storable {
String getKey();
void getData(DataOutputStream output) throws IOException;
void setData(DataInputStream input) throws IOException;
}
鍓嶉潰宸茬粡鎻愬埌錛屽湪MIDP搴旂敤紼嬪簭涓紝搴忓垪鍖栦竴涓被鐨勬渶浣蟲柟娉曟槸浣跨敤DataInputStream鍜孌ataOutputStream銆傚洜姝わ紝闇瑕佹寔涔呭寲鐨勭被鍙互閫氳繃getData()鍜宻etData()鏂規硶闈炲父鏂逛究鍦板瓨鍙栥傚亣瀹氬簲鐢ㄧ▼搴忕殑綾籙serInfo淇濆瓨浜嗙敤鎴風殑鐧誨綍鍚嶃佸彛浠ゅ拰鏄惁鑷姩鐧誨綍鐨勪俊鎭細
public class UserInfo {
String username;
String password;
boolean autoLogin;
}
涓轟簡鑳藉皢UserInfo瀛樺叆RMS錛岄渶瑕佸疄鐜癝torable鎺ュ彛錛?/p>
class UserInfo implements Storable {
String username;
String password;
boolean autoLogin;
public String getKey() { return "user.info"; } // 鎻愪緵涓涓敮涓鏍囪瘑絎﹀嵆鍙?br> public void getData(DataOutputStream output) throws IOException {
output.writeUTF(username);
output.writeUTF(password);
output.writeBoolean(autoLogin);
}
public void setData(DataInputStream input) throws IOException {
username = input.readUTF();
password = input.readUTF();
autoLogin = input.readBoolean();
}
// getters here...
}
瑕佷繚瀛楿serInfo錛屽彧闇璋冪敤StorageHandler鐨勪繚瀛樻柟娉曪細
StorageHandler.storeOrUpdate(userinfo);
瑕佽鍙朥serInfo錛岃皟鐢⊿torageHandler鐨勮鍙栨柟娉曪細
UserInfo userinfo = new UserInfo();
StorageHandler.load(userinfo);
榪欐牱錛岄渶瑕佽鍙栨垨淇濆瓨鏁版嵁鐨勭被瀹屽叏涓嶅繀娑夊強搴曞眰鐨凴MS鎿嶄綔錛屽ぇ澶х畝鍖栦簡搴旂敤紼嬪簭鐨勮璁★紝澧炲己浜嗘簮浠g爜鐨勫彲澶嶇敤鎬т笌鍙淮鎶ゆс?/p>
浜虹被鐪肩潧鐨勮壊瑙夛紝鍏鋒湁鐗規畩鐨勭壒鎬э紝鏃╁湪涓婁笘綰垵錛?/span>Young錛?/span>1809錛夊拰Helmholtz錛?/span>1824錛夊氨鎻愬嚭浜嗚瑙夌殑涓夊師鑹插璇達紝鍗籌細瑙嗙綉鑶滃瓨鍦ㄤ笁縐嶈閿ョ粏鑳烇紝鍒嗗埆鍚湁瀵圭孩銆佺豢銆佽摑涓夌鍏夌嚎鏁忔劅鐨勮鑹茬礌錛屽綋涓瀹氭嘗闀跨殑鍏夌嚎浣滅敤浜庤緗戣啘鏃訛紝浠ヤ竴瀹氱殑姣斾緥浣夸笁縐嶈閿ョ粏鑳炲垎鍒駭鐢熶笉鍚岀▼搴︾殑鍏村錛岃繖鏍風殑淇℃伅浼犺嚦涓灑錛屽氨浜х敓鏌愪竴縐嶉鑹茬殑鎰熻銆?/span>
70騫翠唬浠ユ潵錛岀敱浜庡疄楠屾妧鏈殑榪涙錛屽叧浜庤緗戣啘涓湁涓夌瀵逛笉鍚屾嘗闀垮厜綰跨壒鍒晱鎰熺殑瑙嗛敟緇嗚優鐨勫亣璇達紝宸茬粡琚澶氬嚭鑹茬殑瀹為獙鎵璇佸疄銆?/span> 渚嬪錛氣憼鏈変漢鐢ㄤ笉瓚呰繃鍗曚釜瑙嗛敟鐩村緞鐨勭粏灝忓崟鑹插厜鏉燂紝閫愪釜媯鏌ュ茍緇樺埗鍦ㄤ綋錛堟渶鍒濆疄楠屾槸鍦ㄩ噾楸煎拰铦捐瀳絳夊姩鐗╄繘琛岋紝浠ュ悗鏄漢錛?strong>瑙嗛敟緇嗚優鐨勫厜璋卞惛鏀舵洸綰?/strong>錛屽彂鐜版墍鏈夌粯鍒跺嚭鏉ョ殑鏇茬嚎涓嶅涓夌綾誨瀷錛屽垎鍒唬琛ㄤ簡涓夌被鍏夎氨鍚告敹鐗規т笉鍚岀殑瑙嗛敟緇嗚優錛屼竴綾葷殑鍚告敹宄板煎湪420nm澶勶紝涓綾誨湪534nm澶勶紝涓綾誨湪564nm澶勶紝宸笉澶氭濂界浉褰撲簬钃濄佺豢銆佺孩涓夎壊鍏夌殑娉㈤暱銆備笌涓婅堪瑙嗚涓夊師鑹插璇寸殑鍋囪鐩哥銆傗憽鐢ㄥ井鐢墊瀬璁板綍鍗曚釜瑙嗛敟緇嗚優鎰熷彈鍣ㄧ數浣嶇殑鏂規硶錛屼篃寰楀埌浜嗙被浼肩殑緇撴灉錛屽嵆涓嶅悓鍗曡壊鍏夋墍寮曡搗鐨勪笉鍚岃閿ョ粏鑳炵殑瓚呮瀬鍖栧瀷鎰熷彈鍣ㄧ數浣嶇殑澶у皬涔熶笉鍚岋紝宄板煎嚭鐜扮殑鎯呭喌絎﹀悎浜庝笁鍘熻壊瀛﹁銆?/span>
璁$畻鏈烘樉紺哄僵鑹插浘鍍忕殑鏃跺欎篃涓嶄緥澶栵紝鏈緇堟樉紺虹殑鏃跺欙紝瑕佹帶鍒朵竴涓儚绱犱腑Red,Green,Blue鐨勫鹼紝鏉ョ‘瀹氳繖涓儚绱犵殑棰滆壊銆傝綆楁満涓棤娉曟ā鎷熻繛緇殑瀛樺偍浠庢渶鏆楀埌鏈浜殑閲忓鹼紝鑰屽彧鑳戒互鏁板瓧鐨勬柟寮忚〃紺恒備簬鏄紝緇撳悎浜虹溂鐫涚殑鏁忔劅紼嬪害錛屼嬌鐢?/span>3涓瓧鑺傦紙3*8浣嶏級鏉ュ垎鍒〃紺轟竴涓儚绱犻噷闈㈢殑Red,Green鍜?/span>Blue鐨勫彂鍏夊己搴︽暟鍊鹼紝榪欏氨鏄父瑙佺殑RGB鏍煎紡銆傛垜浠彲浠ユ墦寮鐢誨浘鏉匡紝鍦ㄨ嚜瀹氫箟棰滆壊宸ュ叿妗嗕腑錛岃緭鍏?/span>r,g,b鍊鹼紝寰楀埌涓嶅悓鐨勯鑹層?br>
浣嗘槸瀵逛簬瑙嗛鎹曡幏鍜岀紪瑙g爜絳夊簲鐢ㄦ潵璁詫紝榪欐牱鐨勮〃紺烘柟寮忔暟鎹噺澶ぇ浜嗐傞渶瑕佹兂鍔炴硶鍦ㄤ笉澶獎鍝嶆劅瑙夌殑鎯呭喌涓嬶紝瀵瑰師濮嬫暟鎹殑琛ㄧず鏂規硶榪涜鏇存敼錛屽噺灝戞暟鎹噺銆?/span>
鏃犺涓棿澶勭悊榪囩▼鎬庢牱錛屾渶緇堥兘鏄負浜嗗睍紺虹粰浜鴻鐪嬶紝榪欐牱鐨勬洿鏀癸紝涔熸槸浠庝漢鐪肩潧鐨勭壒鎬у嚭鍙戯紝鍜屽彂鏄?/span>RGB涓夊師鑹茶〃紺烘柟娉曠殑鍑哄彂鐐規槸涓鏍風殑銆?/span>
浜庢槸鎴戜滑浣跨敤Y,Cb,Cr妯″瀷鏉ヨ〃紺洪鑹層?/span>Iain鐨勪功涓啓閬擄細The human visual system (HVS) is less sensitive to colour than to luminance (brightness).浜虹被瑙嗚緋葷粺錛堝叾瀹炲氨鏄漢鐨勭溂鐫涳級瀵逛寒搴︾殑鎰熻姣斿棰滆壊鏇村姞鏁忔劅銆?/span>
鍦?/span>RGB鑹插僵絀洪棿涓紝涓変釜棰滆壊鐨勯噸瑕佺▼搴︾浉鍚岋紝鎵浠ラ渶瑕佷嬌鐢ㄧ浉鍚岀殑鍒嗚鯨鐜囪繘琛屽瓨鍌紝鏈澶氫嬌鐢?/span>RGB565榪欐牱鐨勫艦寮忓噺灝戦噺鍖栫殑綺懼害錛屼絾鏄?/span>3涓鑹查渶瑕佹寜鐓х浉鍚岀殑鍒嗚鯨鐜囪繘琛屽瓨鍌紝鏁版嵁閲忚繕鏄緢澶х殑銆傛墍浠ワ紝鍒╃敤浜虹溂鐫涘浜害姣斿棰滆壊鏇村姞鏁忔劅錛屽皢鍥懼儚鐨勪寒搴︿俊鎭拰棰滆壊淇℃伅鍒嗙錛屽茍浣跨敤涓嶅悓鐨勫垎杈ㄧ巼榪涜瀛樺偍錛岃繖鏍峰彲浠ュ湪瀵逛富瑙傛劅瑙夊獎鍝嶅緢灝忕殑鍓嶆彁涓嬶紝鏇村姞鏈夋晥鐨勫瓨鍌ㄥ浘鍍忔暟鎹?/span>
YCbCr鑹插僵絀洪棿鍜屽畠鐨勫彉褰紙鏈夋椂琚О涓?/span>YUV錛夋槸鏈甯哥敤鐨勬湁鏁堢殑琛ㄧず褰╄壊鍥懼儚鐨勬柟娉曘?/span>Y鏄浘鍍忕殑浜害錛?/span>luminance/luma錛夊垎閲忥紝浣跨敤浠ヤ笅鍏紡璁$畻錛屼負R,G,B鍒嗛噺鐨勫姞鏉冨鉤鍧囧鹼細
Y = kr R + kgG + kbB
鍏朵腑k鏄潈閲嶅洜鏁般?/span>
涓婇潰鐨勫叕寮忚綆楀嚭浜嗕寒搴︿俊鎭紝榪樻湁棰滆壊淇℃伅錛屼嬌鐢ㄨ壊宸紙color difference/chrominance鎴?/span>chroma錛夋潵琛ㄧず錛屽叾涓瘡涓壊宸垎閲忎負R,G,B鍊煎拰浜害Y鐨勫樊鍊鹼細
銆銆Cb = B 錛?/span>Y
銆銆Cr = R 錛?/span>Y
Cg = G錛?/span> Y
鍏朵腑錛?/span>Cb+Cr+Cg鏄竴涓父鏁幫紙鍏跺疄鏄竴涓叧浜?/span>Y鐨勮〃杈懼紡錛夛紝鎵浠ワ紝鍙渶瑕佸叾涓袱涓暟鍊肩粨鍚?/span>Y鍊煎氨鑳藉璁$畻鍑哄師鏉ョ殑RGB鍊箋傛墍浠ワ紝鎴戜滑浠呬繚瀛樹寒搴﹀拰钃濊壊銆佺孩鑹茬殑鑹插樊鍊鹼紝榪欏氨鏄?/span>(Y,Cb,Cr)銆?/span>
鐩告瘮RGB鑹插僵絀洪棿錛?/span>YCbCr鑹插僵絀洪棿鏈変竴涓樉钁楃殑浼樼偣銆?/span>Y鐨勫瓨鍌ㄥ彲浠ラ噰鐢ㄥ拰鍘熸潵鐢婚潰涓鏍風殑鍒嗚鯨鐜囷紝浣嗘槸Cb,Cr鐨勫瓨鍌ㄥ彲浠ヤ嬌鐢ㄦ洿浣庣殑鍒嗚鯨鐜囥傝繖鏍峰彲浠ュ崰鐢ㄦ洿灝戠殑鏁版嵁閲忥紝騫朵笖鍦ㄥ浘鍍忚川閲忎笂娌℃湁鏄庢樉鐨勪笅闄嶃傛墍浠ワ紝灝嗚壊褰╀俊鎭互浣庝簬閲忓害淇℃伅鐨勫垎杈ㄧ巼鏉ヤ繚瀛樻槸涓涓畝鍗曟湁鏁堢殑鍥懼儚鍘嬬緝鏂規硶銆?/span>
鍦?/span>COLOUR SPACES .17 ITU-R recommendation BT.601 涓紝寤鴻鍦ㄨ綆?/span>Y鏃訛紝鏉冮噸閫夋嫨涓?/span>kr=0.299,kg=0.587,kb=0.114銆備簬鏄父鐢ㄧ殑杞崲鍏紡濡備笅錛?/span>
Y = 0.299R +
Cb = 0.564(B 錛?/span> Y )
Cr = 0.713(R 錛?/span> Y )
R = Y + 1.402Cr
G = Y - 0.344Cb - 0.714Cr
B = Y + 1.772Cb
鏈変簡榪欎釜鍏紡錛屾垜浠氨鑳藉灝嗕竴騫?/span>RGB鐢婚潰杞崲鎴愪負YUV鐢婚潰浜嗭紝鍙嶈繃鏉ヤ篃鍙互銆備笅闈㈠皢鐢婚潰鏁版嵁絀剁珶鏄互浠涔堝艦寮忓瓨鍌ㄨ搗鏉ョ殑銆?/span>
鍦?/span>RGB24鏍煎紡涓紝瀵逛簬瀹藉害涓?/span>w,楂樺害涓?/span>h鐨勭敾闈紝闇瑕?/span>w*h*3涓瓧鑺傛潵瀛樺偍鍏舵瘡涓儚绱犵殑rgb淇℃伅錛岀敾闈㈢殑鍍忕礌鏁版嵁鏄繛緇帓鍒楃殑銆傛寜鐓?/span>r(0,0),g(0,0),b(0,0);r(0,1),g(0,1),b(0,1);…;r(w-1,0),g(w-1,0),b(w-1,0);…;r(w-1,h-1),g(w-1,h-1),b(w-1,h-1)榪欐牱鐨勯『搴忓瓨鏀捐搗鏉ャ?/span>
鍦?/span>YUV鏍煎紡涓紝浠?/span>YUV420鏍煎紡涓轟緥銆傚搴︿負w楂樺害涓?/span>h鐨勭敾闈紝鍏朵寒搴?/span>Y鏁版嵁闇瑕?/span>w*h涓瓧鑺傛潵琛ㄧず錛堟瘡涓儚绱犵偣涓涓寒搴︼級銆傝?/span>Cb鍜?/span>Cr鏁版嵁鍒欐槸鐢婚潰涓?/span>4涓儚绱犲叡浜竴涓?/span>Cb,Cr鍊箋傝繖鏍?/span>Cb鐢?/span>w*h/4涓瓧鑺傦紝Cr鐢?/span>w*h/4涓瓧鑺傘?/span>
YUV鏂囦歡涓紝鎶婂涓撫鐨勭敾闈㈣繛緇瓨鏀俱傚氨鏄?/span>YUV YUV YUV…..榪欐牱鐨勪笉鏂繛緇殑褰㈠紡錛岃屽叾涓瘡涓?/span>YUV錛屽氨鏄竴騫呯敾闈€?/span>
鍦ㄨ繖鍗曚釜YUV涓紝鍓?/span>w*h涓瓧鑺傛槸Y鏁版嵁錛屾帴鐫鐨?/span>w*h/4涓瓧鑺傛槸Cb鏁版嵁錛屽啀鎺ョ潃鐨?/span>w*h/4涓瓧鑺備負Cr鏁版嵁銆?/span>
鍦ㄧ敱榪欐牱闄嶄綆浜嗗垎杈ㄧ巼鐨勬暟鎹繕鍘熷嚭RGB鏁版嵁鐨勬椂鍊欙紝灝辮渚濇嵁鍍忕礌鐨勪綅緗壘鍒板畠瀵瑰簲鐨?/span>Y,Cb,Cr鍊鹼紝鍏朵腑Y鍊兼渶濂芥壘鍒幫紝鍍忕礌浣嶇疆涓?/span>x,y鐨勮瘽錛?/span>Y鏁版嵁涓y*width+x涓暟鍊煎氨鏄畠鐨?/span>Y鍊箋?/span>Cb鍜?/span>Cr鐢變簬鏄瘡2x2鍍忕礌鐨勭敾闈㈠潡鎷ユ湁涓涓紝榪欐牱Cb鍜?/span>Cr鏁版嵁鐩稿綋浜庝袱涓垎杈ㄧ巼涓?/span>w/2 * h/2鐨勭敾闈紝閭d箞鍘熸潵鐢婚潰涓殑浣嶇疆涓?/span>x,y鐨勫儚绱狅紝鍦ㄨ繖鏍風殑浣庡垎杈ㄧ巼鐢婚潰涓殑浣嶇疆鏄?/span>x/2,y/2錛屽睘浜庡畠鐨?/span>Cb,Cr鍊煎氨鍦ㄨ繖涓湴鏂癸細(y/2)*(width/2)+(x/2)銆?/span>
涓轟簡鐩磋璧瘋錛屽啀涓嬮潰鐨勫浘涓紝鍒嗗埆灝?/span>Y鐢婚潰(Cb,Cr=0)鍜?/span>Cb,Cr鐢婚潰(Y=128)鏄劇ず鍑烘潵錛屽彲瑙?/span>Cb,Cr鐢婚潰鐨勫垎杈ㄧ巼鏄?/span>Y鐢婚潰鐨?/span>1/4銆備絾鏄悎鎴愪竴涓敾闈箣鍚庯紝鎴戜滑鐨勭溂鐫涗笣姣劅瑙変笉鍒?/span>4涓儚绱犳槸鍏辯敤涓涓?/span>Cb,Cr鐨勩?/span>
灝?/span>Cb,Cr鐢婚潰鏀懼ぇ瑙傚療錛岄噷闈㈤鑹茬浉鍚岀殑鍧楅兘鏄?/span>2x2澶у皬鐨勩?/span>
闄勪歡涓?/span>Windows Mobile涓婁嬌鐢ㄥ叕寮忚繘琛?/span>YUV鍒?/span>RGB杞崲鐨勭▼搴忋傚叾涓渶瑕佹敞鎰忕殑鏄?/span>Cb,Cr鍦ㄨ綆楄繃紼嬩腑鏄細鍑虹幇璐熸暟鐨勶紝浣嗘槸浠?/span>-128鍒?/span>127榪欎簺鏁板奸兘鐢ㄤ竴涓瓧鑺傝〃紺猴紝璇誨彇鐨勬椂鍊欏氨鏄犲皠0鍒?/span>255榪欎釜鍖洪棿錛屾垚涓轟簡鏃犵鍙風殑鍊鹼紝鎵浠ヨ鍑忓幓128錛屾墠鑳藉弬涓庡叕寮忚綆椼傝繖鏍風殑榪愮畻鏈夋誕鐐硅繍綆楋紝鏁堢巼鏄瘮杈冧綆鐨勶紝鎵浠ヨ鎻愰珮鏁堢巼鐨勮瘽錛屼竴鑸湪瀹炵敤紼嬪簭涓嬌鐢ㄦ暣鏁拌綆楁垨鑰呮煡琛ㄦ硶鏉ヤ唬鏇褲傝繕鏈夛紝榪愮畻鍚庣殑r,g,b鍙兘浼氳秴榪?/span>0-255鐨勫尯闂達紝浣滀竴涓垽鏂繘琛岃皟鏁村氨鍙互浜嗐?/span>
涓嶈繃榪欓噷闈㈢殑YUV TO RGB鐨勭畻娉?鏁堢巼瀹炲湪鏄綆,鍥犱負閲岄潰鏈変簡嫻偣榪愮畻,瑙d竴甯?76*144鐨勫浘鍍忓ぇ姒傞渶瑕?00ms宸﹀彸,榪欐槸鏃犳硶蹇嶅彈鐨?濡傛灉娑堥櫎嫻偣榪愮畻,鍙渶瑕?0ms宸﹀彸,鏁堢巼鐨勬彁鍗囩湡鏄棤娉曟兂璞?鎵浠ュぇ瀹惰繕鏄伩鍏嶅湪鎵嬫満涓婇潰榪涜嫻偣榪愮畻.