青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

使用wxWidget中遇到的圖片存儲問題一二

1. 實驗室中CCD的實際色階為14位,獲取的原始圖像數據的每個值都存儲在一個字中,即存儲色階16位,也就是說最高兩位的數據一直為0,同時獲取的圖片信息僅僅是16色階的灰度圖,而采用wxWidget沒有辦法直接將16位的數值串保存為圖片格式,如tiff格式,那么如何將16位的數值串以圖片的形式進行保存呢?

    經過這么幾天的折騰總算是找到了一條解決的途徑,就是將16位的數值串轉化為8為的數值串,也許你會很快的想到這么一個方法,nValue*max(uint8)/max(uint16);用來表示轉化后的數值,不夠還是得考慮一下CCD的實際色階,由于是14位,因此可以采用這樣的方式nValue*max(uint8)/max(uint14);不過由于我們對于圖片的處理是直接對圖片的原始數據進行處理,而轉化只是圖片在顯示屏上顯示的前提步驟,采用上述的方式雖然能夠相對很準確的進行轉化,但是需要花費一定的計算量,而通過近似的轉化能夠更快的進行這個轉化過程,同時獲取得到的圖片依然具有較好的清晰度,下面細說一下我采用的方法:

   1: unsigned short nPicData16 = new unsigned short[nBufSize];   // nBufSize is the size to store pic
   2:  
   3: // to get the nPicData16
   4: // ..................
   5: // get the nPicData16
   6:  
   7: char *pcPicData8 = new char[nBufSize];
   8: for (size_t i = 0; i < nBufSize; ++i) {
   9:   pcPicData8[i] = (char)(nPicData16>>6);
  10: }
  11:  
  12:  

由于2^6在2^14中所占的比例較小因此可以采用這樣的近似的方法。(這種方法具體有什么作用或是缺陷還沒有細究,請各位看官給點看法

2. 順利將14位數值串轉化成為8為數值串后,嘗試的使用下列方式進行圖片保存,發現結果一片黑,數值都為0了:

   1: // 結果發現存儲得到的save.bmp圖是24b的
   2: wxBitmap bitmap(pcPicData8,1392,1040,8);
   3: bitmap.SaveFile(wxT("save.bmp"),wxBITMAP_TYPE_BMP);
   4:  

因此猜想wxWidget對直接獲取的數據串進行保存時采用的rgb的模式進行保存,可能只會保存為24字節格式的圖片,也就是想要將圖片顯示到屏幕上時,也應該采用24b的圖片。不過wxWidget對于圖片數據卻能夠讀取8位的圖片,但是再次采用上述的方式進行存儲時,變成了32字節的了,(各位大蝦知不知道有沒有方法能夠直接保存8位圖的呢)。

于是采用了將這個8位的數值串分別賦值給R,G,B,用這種方式實現灰度圖的創建,然后再進行保存,最終解決了問題。

   1: unsigned char *rgbData = new unsigned char[1392*1040*3];
   2: unsigned char *ptr1 = (unsigned char*) pcPicData8;
   3: unsigned char *ptr2 = rgbData;
   4: for (int i = 0; i < 1392*1040; ++i) {
   5:     *ptr2++ = *ptr1;   
   6:     *ptr2++ = *ptr1;
   7:     *ptr2++ = *ptr1++;
   8: }
   9: wxImage myImage(1392,1040,rgbData);
  10: myImage.SaveFile(wxT("save.bmp"),wxBITMAP_TYPE_BMP);

posted @ 2012-06-26 17:51 鐘謝偉 閱讀(1970) | 評論 (12)編輯 收藏

從自己的角度來看人生路

從89年到現在,將近23個春秋了,人生的近三分之一已沒入了歷史的河流中,仿佛一顆塵埃掉入河中,泛不起一絲漣漪。這僅僅是一種不真實的感受,電影《蝴蝶效應》中講述的就與此相反,過去那看似微末的行為,隨著時間的流逝,卻會被逐漸放大,帶來預料之外的影響,但是通過比較,才能清楚的認清,變化的大小,而目前時間流淌的不可逆性,使得這樣的情景注定只能夠在熒屏上展現,在腦海中空旋。
再向前邁出兩步就成為大學畢業的人了,四年的大學生涯也將隨著落幕的鐘聲逐漸遠去。但是,我覺得這四年中,我不是一個合格的掌舵人,只是順應著波浪,一路中,風平浪靜,就仿佛麥哲倫在從南美到菲律賓三個月的航行中,沒有遇到一次波浪,算是一種運氣吧。四年大學生涯的結束帶給我的沒有不舍,沒有對未來更美好的憧憬,只有對于自己人生路途的茫然,而在武漢更能體會到內外茫然的同步效應^^。
小學6年,初中3年,高中3年,大學4年,隨著教育的深入,仿佛感到自己正被某種莫名的東西慢慢的同化著、侵蝕著,從最初的活躍慢慢過度到了淡然的狀態。這個深入學習的過程仿佛擁有著難以拒絕的“魔力”,不斷的誘惑著你,慢慢的迷失了自己。
也許是深受中國古代教育模式的影響,目前雖然在推廣以學生為主導,減負等措施,但是終究如晚霞般,慢慢的消失,隨之而來的便是無盡的黑暗。難,改正一個習慣難,這是總所周知的,因此想要對歷史積淀下來的東西進行改變更不是輕而易舉的事情。這里并未有批判填鴨式、以課本為主的教育模式,想古代文人主要學習的書籍就那么基本,反復看的也就那么基本,在死記之后仍會不斷地進行摸索、不斷的溫習,而后便會帶來了悟,轉化為自己的東西,而現在呢,知識的量相比較而言不知增加了多少倍,同時知識的更新速度更是猛躥。死記了一部分知識,來未等有足夠的時間將其消化,便掩埋在了新知識或是舊的不同的知識的沙泥中,忘記便是必然的事情。而學無所獲的結果,更會促使內心滋生厭學的心態,惡性循環也成為大多數學生在經歷的一種狀態,心累身累,不如放下,沉溺與游戲中,尋找有所成就的快感。
同時有多少人是走著自己喜歡的道路,有多少人認清了自己想要走的道路呢?從兒時開始,由于自己的人生觀,世界觀沒有很好的形成,從而家長、老師就成了重要的指路人,但是有些家長,將自己的認知自己的理解,認為就是孩子所需要的,于是各種的培訓,各種的補習接踵而至,想讓孩子成為鄰里最出色的一名,相互的比較,用的便是各種的標簽,“學生干部”,“成績”,“獎狀”等等。但是往往忽略孩子對于新鮮的事物總是充滿這好奇,歡喜也許僅僅是一時的,但如果好好的引導,或許能夠成為一種喜好,強加的壓迫卻往往適得其反,就算是能夠獲取所謂的成功,孩子的心中深藏的也許是更深的苦,難言而又長久。
    高中步入大學前,首先需要選擇的是具體的專業,但是哪個專業是你真的想要選擇的呢,家長老師開始從就業情況,大縱好評度不斷的給你分析,影響著你的選擇,然后聽從他們最終的判決,但是18歲,已經成年了的你們是否曾想過先充分認清楚自己的追求,然后進行選擇呢?也許是小學、初中、高中這么步步走來的影響,我們已經習慣了從書中,從老師的口中,從家長的言語中尋求所謂的標準答案,不知道如何通過自身去辨識屬于自己的方向,我們也慢慢失去了對于興趣和愛好的感覺,就算迎面相見,也不曾相識,插肩而過,便成陌路客。原來一直都是借口,借口對前路的未知,借口他人比自己更了解自己,借口在其他人身上存在自己想要的標準答案,就算是自己的父母,有多少能夠知道自己的孩子真正想要的是什么,他們的本意自然不壞,但是幫倒忙的可能也是存在的,并且不小。
    也許是失去了警覺性,在意識到危險降臨的時候,才會慌張,才會不知所措,才會瞎走瞎撞,后悔過后,依然一片晴朗。在沒認清自己喜歡干些什么的時候,進入了大學,進入了一個所謂喜歡、所謂很好的專業,開始了大學生活。上著既定的課程,為了考試,打了興奮劑般的復習,仿佛這一切都是為了成績。一個流程的教學下來,對于悲喜的敏感性也越來越差,順應著大流忙碌著,上課,游戲,考試等等。就算是那些實驗性的課程也多是走走過場,便能輕松的通過。渾渾噩噩,只是不同的人,用不同的渾噩的方式,得到了不同的渾噩的結果,誰都不用羨慕誰,因為哪些所謂的牛人,也許也如你一般,并沒有行走在內心所要的道路上,只是披了一件華麗的外衣,掩藏了內心深處的傷痕。
畢業之后會選擇擇業或是深造,很多都是無法離開現在既定的專業了,會想除了這,我還會些什么,是的,直到大學結束,我們有種思維正在根深蒂固,學到的知識能夠決定自己人生的方向。而這知識的選擇卻并非是自己所想要的,只是錯誤的延續了下去。往往會忘記,獲取知識的這種能力,因為沒有單位能夠給這種能力一個量化的指標,使得這種能力的擁有者也會在別人的反問中對自己產生越來越大的懷疑,這也是因為我們很少清楚的認識到它的存在,在實踐中主動的運用它,只是在一種迷糊的狀態下行動著,猶如霧里看花,除了朦朧還是朦朧,而后在錯誤中錯誤下去,到清醒之時已沒有勇氣去迎接真實的自己。把所有的固定的知識忘卻,剩下的就是屬于你的精華。知識是一種累積,一種沉淀,隨著慢慢的積累總會體現出它的重量,但是智慧是一種方法,一種思維,能夠使你懂得如何獲取知識,如何運用它們,如何創造出帶有自己鮮明特性的價值。
一路之中還有很多東西在不斷的消失,還有勇氣,指出是非對錯的勇氣,給出自己見解的勇氣,承認錯誤的勇氣,大聲喊出愛的勇氣。也許你會說,現在學得應該是我喜歡的,你也是加了應該兩個字,說明內心之中有了動搖,而不夠穩定堅固的地基之上是建造不出高樓大廈的。請先沉下心來深思,從過去,到現在,順便望一望未來,也許有種觸動會從內心深處蔓延開來。但是一旦確認了你的喜好,請鼓起勇氣,大聲的喊出自己的心聲,堅定不移的走下去。
用一句也許不是很相關的話作為結語:
如果愛,請深愛!!

posted @ 2012-06-18 23:22 鐘謝偉 閱讀(1696) | 評論 (4)編輯 收藏

繼承類中改變基類內public or protected屬性

   1: class Base
   2: {
   3: private:
   4:     int m_nValue;
   5:  
   6: public:
   7:     Base(int nValue)
   8:         : m_nValue(nValue)
   9:     {
  10:     }
  11:  
  12: protected:
  13:     void PrintValue() { cout << m_nValue; }
  14: };
  15:  
  16: class Derived: public Base
  17: {
  18: public:
  19:     Derived(int nValue)
  20:         : Base(nValue)
  21:     {
  22:     }
  23:  
  24:     // Base::PrintValue was inherited as protected, so the public has no access
  25:     // But we're changing it to public by declaring it in the public section
  26:     Base::PrintValue;
  27: };

注意 Base::PrintValue; 該語句并沒有添加()

posted @ 2012-06-12 10:12 鐘謝偉 閱讀(1467) | 評論 (3)編輯 收藏

簡單的Int容器類

     摘要: from http://www.learncpp.com/cpp-tutorial/104-container-classes/ 1: #ifndef INTARRAY_H 2: #define INTARRAY_H 3: 4: #include <assert.h> // for assert() 5: 6: class IntArray 7:...  閱讀全文

posted @ 2012-06-08 21:44 鐘謝偉 閱讀(1200) | 評論 (0)編輯 收藏

時間管理

介紹一個簡單有效的時間管理方式,番茄工作法!!

posted @ 2012-06-08 11:24 鐘謝偉 閱讀(123) | 評論 (0)編輯 收藏

wxwidgets編程規范一二

詳細內容參見:http://www.wxwidgets.org/develop/standard.htm

以一個入門的新手來看,C++具有很大的靈活性,與技巧性,但是這些技巧性的東西可能帶來的是代碼可讀性的降低,效率的不穩定,以及很多人對于C++的唾罵。本人理解,C++的靈活性是用來構建庫的,而在具體項目運用中是在類庫的一定限制規范下選擇合適的庫進行開發,這樣開發效率和代碼的可讀性將大大提升。

理解可能有誤,請拍板。

在使用wxwidget庫編寫時,

通常的C++規則(部分)

1. 不使用C++模版

2. 不使用C++異常

3. 不使用RTTI

4. 不使用命名空間

5. 不使用STL

6. 在for內部不進行變量的聲明

7. 不使用嵌套類

8. 不使用新的邏輯關鍵字(or,and,not等)

9. 不使用全局變量

10. 將warnings打開,并消除warnings

11. 使用#if 0注釋代碼段

12. 避免重載虛函數

13. 避免使用額外的分號

 

wxWedget規則

1. 同一文件頭部

/////////////////////////////////////////////////////////////////////////////
// Name:        src/common/foo.cpp
// Purpose:     Implementation of wxFoo
// Author:      Your Name
// Created:     2006-12-03
// RCS-ID:      $Id: standard.htm 1562 2012-01-08 11:38:14Z VZ $
// Copyright:   (c) 2006 wxWidgets development team
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

2. 用四個空格代替tab

3. public 然后 protected 然后 private

4. 使用wx作為公共符號

5. 文檔中避免使用!

posted @ 2012-06-04 19:45 鐘謝偉 閱讀(1334) | 評論 (0)編輯 收藏

8.8 構造函數(2) [翻譯]

     摘要: 原文 from www.learncpp.com/cpp-tutorial/88-constructors-part-ii/ 私有構造函數 偶爾,我們不想讓用戶在class外使用特殊的構造函數。為了實現這個想法,我們可以將構造函數設定為私有的。 1: class Book 2: { 3: private: 4: int m_nPages; 5: 6: ...  閱讀全文

posted @ 2012-05-30 22:06 鐘謝偉 閱讀(1213) | 評論 (0)編輯 收藏

寫點什么,雜言

從開始學習C++到現在已經將近4年了,大一時上的課程就只講了和C語言處理相同的部分,最為關鍵的面向對象編程卻被無視了,接下去的兩年半的時間也沒有怎么接觸過這門語言,直到大三下的時候才有種想續前緣的沖動,到現在斷斷續續的學習,沒有什么項目,沒有什么任務,進度不是很大。
也許作為新手的通病,經常會在大堆的書海中徘徊,看了這本,沒看多久,有人說另一本更好,又拿起那本從頭繼續開始看,這樣下來,只是在不斷的重復著,卻沒有前進,或是前進的步伐慢到一時半刻難以察覺的地步。
現在通過寫博客來督促自己,堅持下去,總會出現奇跡。
教程先緊抓一本,將其熟悉了再考慮是否繼續換一本,當然作為一門編程語言,實踐自然是必不可少的,看書之余,看看別人的代碼,構思一下即將要做的小項目,拿幾個問題練練手,如此才能更好的進步。

posted @ 2012-05-29 22:18 鐘謝偉 閱讀(142) | 評論 (0)編輯 收藏

錯誤處理

編程中一般出現的錯誤有兩種:語法上的錯誤與語義上的錯誤,語法中的錯誤幾乎都能夠被編譯器識別出來,但是語義上的錯誤編譯器就無法識別,因此在編程的過程中應該時刻警惕語義錯誤的出現。

在編程初始,我們可以事先編寫防錯的程序段,一般錯誤會出現在什么地方呢?

1)函數調用時傳遞的參數的有效性

2)函數的返回值可能隱含了錯誤發生的可能

3)從用戶或文件中讀取的輸入導致的錯誤

為了很好的避免這些錯誤,我們通常遵循如下的措施:

1)在函數的頂部,確保傳遞進來的參數有效

2)函數調用后,檢測返回值

3)使輸入的值有效,符合規范

那么選取怎樣的方式對錯誤進行處理呢,一般如下:

1)快速跳過代碼

   1: void PrintString(char *strString)
   2: {
   3:     // Only print if strString is non-null
   4:     if (strString)
   5:         std::cout << strString;
   6: }

2)想調用程序中,返回錯誤碼

   1: int g_anArray[10]; // a global array of 10 characters
   2:  
   3: int GetArrayValue(int nIndex)
   4: {
   5:     // use if statement to detect violated assumption
   6:     if (nIndex < 0 || nIndex > 9)
   7:        return -1; // return error code to caller
   8:  
   9:     return g_anArray[nIndex];
  10: }

3)如果你想在發現錯誤時直接終止程序,可以使用exit函數

   1: int g_anArray[10]; // a global array of 10 characters
   2:  
   3: int GetArrayValue(int nIndex)
   4: {
   5:     // use if statement to detect violated assumption
   6:     if (nIndex < 0 || nIndex > 9)
   7:        exit(2); // terminate program and return error number 2 to OS
   8:  
   9:     return g_anArray[nIndex];
  10: }

4)如果用戶輸入不合理的值,就繼續要求輸入

   1: char strHello[] = "Hello, world!";
   2:  
   3: int nIndex;
   4: do
   5: {
   6:     std::cout << "Enter an index: ";
   7:     std::cin >> nIndex;
   8: } while (nIndex < 0 || nIndex >= strlen(strHello));
   9:  
  10: std::cout << "Letter #" << nIndex << " is " << strHello[nIndex] << std::endl;

5)可以使用cerr輸出錯誤,在gui編程的時候,可以直接在遇到錯誤的時候跳出對話框,輸出錯誤碼,然后終止

   1: void PrintString(char *strString)
   2: {
   3:     // Only print if strString is non-null
   4:     if (strString)
   5:         std::cout << strString;
   6:     else
   7:         std::cerr << "PrintString received a null parameter";
   8: }

 

另,可以使用assert

   1: int g_anArray[10]; // a global array of 10 characters
   2:  
   3: #include <cassert> // for assert()
   4: int GetArrayValue(int nIndex)
   5: {
   6:     // we're asserting that nIndex is between 0 and 9
   7:     assert(nIndex >= 0 && nIndex <= 9); // this is line 7 in Test.cpp
   8:  
   9:     return g_anArray[nIndex];
  10: }

posted @ 2012-05-28 21:05 鐘謝偉 閱讀(199) | 評論 (0)編輯 收藏

堆和棧【翻譯】

看到一篇比較有意思的文章,在這里就翻譯一下,當今天發表的內容了。

from http://www.learncpp.com/cpp-tutorial/79-the-stack-and-the-heap/

一個程序對于內存的使用,一般可以分為四類:

1. 代碼區域,通過的編譯的程序在代碼中存儲的位置

2. 全局變量區域,全局變量存儲的位置

3. 堆,動態內存分配的變量存儲的位置

4. 棧,函數參數和局部變量存儲的位置

下面將主要針對3,4兩個方面進行論述。

 

堆是一個用于動態分配的很大的內存池。在C++中,當你使用new操作符分配內存時,這個內存是從堆中取得的。

   1: int *pValue = new int; // pValue is assigned 4 bytes from the heap
   2: int *pArray = new int[10]; // pArray is assigned 40 bytes from the heap

因為,要分配的內存的準確位置事先是不知道的,所以分配的內存是間接獲取的,也就說明了為什么new操作符返回的是指針。這里你并不需要擔心背后內存具體如何分配的機制。但是,有一點值得明了,連續的內存請求所指向的很可能不是連續的地址的內存片段。如:

   1: int *pValue1 = new int;
   2: int *pValue2 = new int;
   3: // pValue1 and pValue2 may not have sequential addresses

上例中,兩個new是連續的,但是分配得到的pValue1和pValue2的地址是不連續的。當動態分配的變量被刪除后,內存有被返回到堆中以備后續中再次被動態分配。

堆有如下優缺點:

1. 分配的內存一直處于被分配的狀態,知道去分配操作出現,才回到初始狀態(沒有及時去分配,如new后沒有用delete,會導致內存的泄漏)。

2. 動態分配的內存必須通過指針聯系

3. 由于堆是一個很大的內存池,大的數組,結構,類都應該在這里分配得到內存

 

棧調用扮演了一個很有趣的角色。在我們討論棧調用之前,讓我們討論一下什么叫做棧。

想象一下自助餐廳中的一堆疊起來的盤子。因為每個盤子都比較重,它們被疊起來的,你只能做以下三件事情。

1)看向最上面的盤子

2)將最上面的盤子拿掉

3)在上面放一個新的盤子

在計算機編程中,棧是一個存儲其他變量的容器(很像一個數組)。但是,一個數組能夠以你想要的方式任意更改獲取其中的元素,棧則有更多的限制,棧中能夠進行的操作如下:

1)查看棧頂的項

2)將棧頂的項從頂部移除

3)將一個新的項放置頂部

棧是后進先出(LIFO)的數據結構。

(略掉一些內容······)

我們主要來看當調用函數是棧發生了一些什么行為。

1)發生函數調用處的相關指令的地址被push進棧中

2)函數返回類型置于棧中,設置一個占位符

3)CPU跳至函數的代碼中

4)現在棧頂的內容是一個特殊指針,棧幀。隨后所有的加入到棧中的內容都是該函數的局部信息。

5)所有的函數參數都被放入棧中

6)函數中的指令得到執行

7)函數中的局部變量push棧中

當函數結束的時候,發生如下事件:

1)函數的返回值拷貝進入一個占位符中,

2)在棧幀之后的所有內容都被pop off,所有的局部變量都被銷毀

3)返回值被pop off并賦值給函數中的變量,如果調用函數的返回值沒有賦值給任何東西,該值就會丟失

4)下一個語句的地址從棧中pop off,CPU繼續執行

 

棧溢出

棧的大小是有限的,只能有序的容納一定量的信息。如果程序試圖向棧中放入過多的信息,棧將會溢出。棧溢出發生在棧的內存都被分配完了,那種情況下,更多的分配,將會發生在內存的其它片段中。

棧溢出通常發生在分配了太多的變量到棧上,或太多的嵌套函數調用,導致結果就是程序的奔潰。

如:

   1: int main()
   2: {
   3:     int nStack[100000000];
   4:     return 0;
   5: }

棧的優缺點:

* 棧中的內容可以一直保留到pop off發生

* 編譯時,棧中分配的內存是已知的,因此,可以直接通過變量訪問內存。

* 因為棧相對而言是比較小的,所以小心會吃掉很多棧空間的事情。包括大型數組,結構體,類過多的內嵌,過多的遞歸等。

posted @ 2012-05-27 23:08 鐘謝偉 閱讀(1876) | 評論 (3)編輯 收藏

僅列出標題
共4頁: 1 2 3 4 
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

常用鏈接

留言簿(1)

隨筆檔案

IT網站

My Friends

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产欧美在线人成| 久久成人精品电影| 欧美精品一级| 亚洲三级电影全部在线观看高清| 欧美中文字幕精品| 久久福利一区| 在线看无码的免费网站| 你懂的视频欧美| 美国十次成人| 亚洲美女在线观看| 欧美激情亚洲国产| 亚洲午夜三级在线| 午夜日韩视频| 亚洲激情成人在线| 99国产精品久久久久久久| 国产精品第一区| 久久精品国产综合精品| 麻豆精品在线视频| 亚洲午夜精品一区二区| 欧美与欧洲交xxxx免费观看| 亚洲国产欧美在线| 亚洲一区二区三区免费观看| 影音先锋一区| 一本久久综合亚洲鲁鲁| 国产亚洲精品bt天堂精选| 欧美黑人国产人伦爽爽爽| 欧美色播在线播放| 免费观看成人www动漫视频| 欧美激情亚洲国产| 久久综合亚洲社区| 欧美无砖砖区免费| 男人的天堂成人在线| 国产精品国产三级国产专播精品人| 久久久精品日韩欧美| 欧美另类99xxxxx| 久久综合色一综合色88| 欧美色播在线播放| 亚洲国产精品视频| 国产精品黄视频| 欧美成人在线免费观看| 国产精品视频久久| 亚洲精品久久7777| 亚洲风情亚aⅴ在线发布| 亚洲一区综合| 这里只有精品丝袜| 欧美fxxxxxx另类| 久久久久久亚洲精品不卡4k岛国| 欧美日韩一区二区在线视频 | 精品成人免费| 亚洲一区二区三| 在线视频日本亚洲性| 久久综合久久综合久久综合| 久久成人免费电影| 国产精品成人一区二区网站软件| 亚洲国产精品福利| 亚洲成人自拍视频| 久久精品国产91精品亚洲| 亚洲欧美精品suv| 欧美日韩在线免费视频| 亚洲黄网站黄| 亚洲另类在线一区| 欧美xxx在线观看| 欧美夫妇交换俱乐部在线观看| 国产一区二三区| 欧美亚洲专区| 久久久99免费视频| 国产亚洲精品资源在线26u| 亚洲女同在线| 中日韩美女免费视频网址在线观看| 悠悠资源网久久精品| 久久精品国产一区二区电影| 亚洲网址在线| 亚洲一区二区三区在线视频| 中文av一区二区| 国产精品videossex久久发布| 亚洲美女电影在线| 亚洲无线观看| 国产精品一区=区| 性久久久久久| 欧美 日韩 国产 一区| 久久精品官网| 麻豆免费精品视频| 亚洲精品护士| 欧美日韩在线播放三区四区| 一区二区三区高清不卡| 欧美亚洲免费高清在线观看| 国产欧美在线观看一区| 久久久久9999亚洲精品| 久久一区中文字幕| 日韩一区二区精品葵司在线| 欧美高清在线视频| 亚洲精品一区二区三区婷婷月 | 久久综合激情| 亚洲精品视频在线播放| 欧美三级午夜理伦三级中文幕| 亚洲一区二区影院| 农村妇女精品| 亚洲一区二区三区精品在线| 国产亚洲女人久久久久毛片| 免费不卡在线视频| 国产精品99久久不卡二区| 久久久亚洲国产美女国产盗摄| 91久久中文字幕| 国产精品自拍网站| 欧美成人在线免费视频| 亚洲欧美国产制服动漫| 欧美福利精品| 校园春色综合网| 亚洲精选国产| 国产一区二区三区免费观看| 欧美看片网站| 久久久久久久久久久久久9999| 99精品视频一区| 欧美成人黑人xx视频免费观看| 亚洲深夜福利在线| 在线观看av不卡| 国产免费成人| 欧美日韩免费在线观看| 久久在线免费视频| 欧美一级久久| 亚洲午夜在线视频| 亚洲国产一区二区a毛片| 久久精品国产一区二区电影| 在线亚洲免费视频| 亚洲欧洲综合| 在线不卡中文字幕| 国产亚洲欧美中文| 国产精品高潮呻吟久久| 欧美激情一区二区三区不卡| 久久美女艺术照精彩视频福利播放| 中国av一区| 中文久久精品| 一片黄亚洲嫩模| 亚洲乱亚洲高清| 亚洲国产精品一区二区www在线 | 亚洲人精品午夜| 一区精品久久| 一区二区亚洲精品国产| 国产精品电影观看| 国产精品女人网站| 欧美成人有码| 亚洲无线观看| 亚洲视频精品| 亚洲一区二区三区欧美| 一区二区三区四区国产精品| aa国产精品| 亚洲伊人网站| 性欧美长视频| 久久久人成影片一区二区三区 | 午夜精品999| 亚洲欧美综合网| 久久av资源网站| 久久久久国产精品人| 久久精品日韩欧美| 久久久久久久97| 免费日韩成人| 欧美日本不卡高清| 欧美亚日韩国产aⅴ精品中极品| 国产精品久久久久久五月尺| 国产精品美女www爽爽爽| 国产女主播一区| 激情综合色综合久久| 亚洲国产精品精华液网站| 亚洲精品你懂的| 中文在线一区| 久久精品五月| 欧美激情国产日韩| 一区二区三区鲁丝不卡| 亚洲欧美日韩国产中文| 久久人人精品| 亚洲激情图片小说视频| 亚洲第一精品福利| 艳女tv在线观看国产一区| 午夜精品国产精品大乳美女| 日韩视频免费| 亚洲三级影院| 亚洲欧美精品一区| 免费欧美高清视频| 国产精品嫩草99a| 亚洲福利国产| 亚洲欧美精品在线| 欧美大胆人体视频| 亚洲婷婷综合色高清在线| 久久精品日韩| 国产精品美女999| 一区二区在线观看av| 亚洲愉拍自拍另类高清精品| 久久亚洲精品一区二区| 日韩五码在线| 久久久久一区二区三区| 国产精品成人国产乱一区| 黑人操亚洲美女惩罚| 一区二区日韩伦理片| 久久久久网址| 一本一本大道香蕉久在线精品| 午夜久久资源| 国产精品福利av| 99视频一区二区三区| 蜜桃av一区二区| 亚洲综合二区|