導航:首頁 > 使用方法 > cmap的使用方法

cmap的使用方法

發布時間:2022-05-08 15:18:04

『壹』 CMap如何使用用法舉例

之前,我們已經依次學完了CArray,CList,並且也對它們進行了初步的剖析。 其實,我一直認為CMap是最簡單的一個數據類型,如果說,大家對這個數據類型產生不良感覺的話,大多是因為對Hash表的陌生。 Hash表可以認為是數組的一種優化,或者說是對數組缺陷的一種彌補,因為我們知道,數組在具備了高效存取性能的同時,無法動態的調整自身的大小,又嚴重的影響了它的使用效果。這給了Hash表可乘之機,Hash表總是使用了某種演算法盡可能的來達到將成對的元素存儲到一個額定的離散的內存空間,它既繼承了鏈表對自身的動態調整,又盡可能的使讀寫維持在高速的水平,當然無論如何還是要比數組慢的多。 如果你非要讓我告訴你,Hash表是什麼樣的一個數據結構的話,很遺憾,我無法准確的描述,這就相當於你問我「鳳凰是什麼樣子」,不過我可以告訴你孔雀的樣子。常用的Hash表非常像一個十字數組,似乎十字數組又成為了眾多讀者的障礙,如果你暫時還不能理解的話,請你去翻閱Hash表的詳細論述,當然你也可以在不久之後,在本處看到這些經典數據結構的精講。 class Point{public:Point(){m_x = 0;m_y = 0;}Point(int x, int y){m_x = x;m_y = y;}public:int m_x;int m_y;};typedef CMap<const char*, const char*, Point, Point& CMapPnt; //請在使用之前定義int main(){Point elem1(1, 100), elem2(2, 200), elem3(3, 300), point; CMapPnt mp; // insert 3 elements into map, #1 mp.SetAt("1st", elem1); mp.SetAt("2nd", elem2); mp.SetAt("3th", elem3); // search a point named "2nd" from map #2 mp.Lookup("2nd", point); printf("2nd: m_x: %d, m_y: %d\n", point.m_x, point.m_y); // insert a new pair into map #3 Point elem4(4, 400); mp["4th"] = elem4; cout<<"count: "<<mp.GetCount()<<endl; // traverse the entire map #4 size_t index = 0; const char* pszKey; POSITION ps = mp.GetStartPosition(); while( ps ){mp.GetNextAssoc(ps, pszKey, point); printf("index: %d, m_x: %d, m_y: %d\n", ++index, point.m_x, point.m_y);}return 0;}代碼中,我已經給出了一些注釋,我同樣建議讀者們,用英文在代碼中注釋,這樣的好處實在是太多了。尤其在代碼需要在不同編碼的操作系統上調試的時候。 遍歷,看注釋#4,至於POSITION的含義,請在本空間,查看其它文章。先使用GetStartPosition()函數獲得表頭的位置,然後,我們可以使用GetNextAssoc函數來遍歷。GetNextAssoc(POSITION& rNextPosition, KEY& rKey, VALUE& rValue)函數的參數值得說明一下,大家看到,3個參數都是引用,而第一個是rNextPosition,顧名思義,在函數返回之後,它將會指像下一個元組,當然這是在表還未遍歷完的時候,否則,它將被置為空(NULL)。 【】,利用下標取元素的這個操作符,在CMap中被重載,用來返回指定Key值數據的引用,不過在注釋#3處,對於先取"4th"這個Point的引用然後賦值的用法,看起來,似乎有點聰明過了頭,因為在這之前,我們還沒有插入"4th"所對應的元組,但是,程序卻能正常的運行!為什麼?其實,這樣的用法是十分正確的,因為CMap畢竟不是數組,它是沒有邊界的,當CMap在獲得一個它無法查詢到的Key值的時候,它會將這個Key以及一個空的數據類型追加到Hash表中去,從而保證了上面的程序可以無誤的運行。 我們已經說過,ARG_KEY是作為類型參數傳入CMap的,但並不是任何類型都可以作為ARG_KEY傳入的。為什麼?看樣子,這次不得不簡單的說說Hash表的散列函數了。每個Hash表,總會使用一些散列函數,用來查找Key所對應的Value,理想狀態下,我們當然希望Hash表,就是一個數組,雖然這不可能,不過這樣理解,可以幫助我們更好的理解Hash表的物理結構,就讓我們暫時把它看成一個數組吧。數組總是使用下標來直接獲取元素的存儲地址,而下標,顯然應該是個非負整數,從而Hash表,也應該具備這樣的特性,至少必須存在某種演算法可以使傳入的Key可以直接的轉化為一個非負的整數,這也就是ARG_KEY的選擇標准。從而對象、引用無論如何都不應該作為ARG_KEY成為CMap的類型參數,而int、unsigned int、指針以及地址就成為了ARG_KEY的常用類型參數,其實也就是那些類似於整型的數據類型。常常看到一些人在用CMap的時候,試圖使用CString作為CMap中ARG_KEY的類型參數,這是應該被糾正的方向性錯誤,但有些人似乎會理直氣壯的反駁我,因為他們發現類型參數KEY是可以使用CString的,這很奇怪嗎?我說過KEY不能使用CString嗎?之所以KEY可以使用CString而ARG_KEY卻用的是LPCTSTR,那是因為CString重載了operator==(const char*)這個判等操作符,當CMap從Hash表中獲得KEY之後,它會將ARG_KEY與KEY直接相比較。真正存於CMap內部的是KEY,也就是CString。這也就是為什麼,我們經常會看到CMap被實化成CMap<CString, LPCTSTR/*相當於const char*,非Unicode情況下*/, CString,CString&這樣的一個四不像實化類的原因,至於CMap的效率優化問題,我們會在以後的文章中繼續與大家探討。

『貳』 win10系統中怎麼刪除Adobe Reader殘余文件夾CMap

工具:win10系統

步驟:

  1. Adobe Reader裝在D盤,D:Program FilesAdobeReader 11.0ResourceCMap,首先在D盤打開文件的屬性。


『叄』 CMap文件在D盤刪除不了

如果遇到刪不掉的文件該如何處理

大家是否有這樣的經歷:在刪除某個文件時,系統會給出各種各樣的提示,反正就是死活不讓刪。造成這種情況的原因主要有三種:一是文件正在被系統使用,二是文件名中包含系統無法識別的字元,三是用戶許可權不夠。我們主要研究前兩種情況,下面做了個整理,幫你解決這個問題。

一、基本型

1.分步刪除。如果你刪除的是一個文件夾,可以嘗試先將文件夾中的文件刪除,然後再刪除該文件夾。還有一種辦法是在該文件夾下面新建一個文件,再對文件夾執行刪除操作。
2.改名刪除。將不能刪除的文件或文件夾改名後再刪除.
3.結束進程再刪除。當你在刪除文件時,如果系統提示「文件正在使用」,首先檢查一下是否沒有退出與被刪文件相關的程序,再看看系統進程中是否還有相關進程保留。這種情況常常出現在我們卸載軟體後刪除軟體殘留在系統中文件的時候。
4.重啟後再刪除.
5.換個系統再刪除。使用多系統的朋友可以切換到另外一個系統中執行刪除操作,這招比較有效。單系統的朋友則可以在DOS下使用RD(刪除目錄)或delete命令(刪除文件)或者進入到安全模式底下進行刪除操作.
6.結束掉Explorer進程後再刪除。按下Ctrl+Alt+Del鍵打開任務管理器,切換到「進程」選項卡,結束掉Explorer進程,這時候桌面會丟失,不用著急,運行「文件→新任務」,輸入「cmd」後回車打開命令行窗口,進入待刪文件所在目 錄,用RD或delete命令刪除即可。刪除完畢後再次運行「文件→新任務」命令,輸入「explorer」後回車,桌面又回來了.
7.關閉預覽功能再刪除。如果你在資源管理器中使用了視頻、圖片的預覽功能,那麼在刪除此類文件時常常不成功,解決的辦法是關閉該功能:Windows XP用戶在「開始→運行」中輸入「regsvr32 /u shmedia.dll」即可,Windows 2000用戶則在資源管理器中的空白處單擊滑鼠右鍵,選擇「自定義文件夾」選項,會出現自定義文件夾向導,進入到「請選擇模板」窗口後,選擇其中的「簡易」便可以禁止視頻預覽了。

二、移花接木型

1.覆蓋文件再刪除。在硬碟的另外區域新建一個和待刪文件同名的文件,然後剪切並覆蓋待刪文件,最後再刪除該文件.
2.請常用軟體「兼職」刪除。我們可以使用Winrar、FlashFXP、Nero、ACDSee來刪除頑固文件,這種方法往往有奇效。使用方法非常簡單,以FlashFXP為例,只需在本地目錄中瀏覽到待刪文件,對其執行刪除操作即可.
注意:使用Winrar來刪除文件的方法跟其它軟體不同,步驟如下:右鍵單擊待刪除文件或者文件夾,選擇「添加到檔案文件」菜單,在談出窗口中勾選「存檔後刪除源文件」,單擊「確定」,這樣Winrar在創建壓縮文件的同時,也會幫我們刪除頑固的文件,我們只 需要將創建的壓縮文件刪除即可.
3.在別的機器上刪除。如果你處於區域網中,可以嘗試將待刪文件所在的文件夾的屬性設置為共享,並賦予讀寫許可權,然後通過網上鄰居或在所在的區域網內的其它的電腦上打開文件夾,執行刪除操作。另外如果你電腦中安裝了FTP伺服器,我們還可以試試從FTP登錄 本機,然後刪除待刪文件.
4.使用專業刪除軟體。大名鼎鼎的PC Tools這款小軟體可以刪除幾乎所有「頑固」軟體。運行軟體後,先按任意鍵進入軟體的主界面,然後按下F10並切換選中待刪文件,按下D鍵並確認操作即可刪除.

『肆』 CMap 怎麼使用自定義的類作為key

template<> UINT AFXAPI HashKey<FlashType::UndefinedType &>(FlashType::UndefinedType & key)
{
}
不能放到其他命名空間裡面

『伍』 怎麼用python顯示一張圖片

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 這兩個庫操作圖片。本人偏愛 matpoltlib,因為它的語法更像 matlab。
一、matplotlib
1. 顯示圖片
復制代碼
import matplotlib.pyplot as plt # plt 用於顯示圖片
import matplotlib.image as mpimg # mpimg 用於讀取圖片
import numpy as np
lena = mpimg.imread('lena.png') # 讀取和代碼處於同一目錄下的 lena.png
# 此時 lena 就已經是一個 np.array 了,可以對它進行任意處理
lena.shape #(512, 512, 3)
plt.imshow(lena) # 顯示圖片
plt.axis('off') # 不顯示坐標軸
plt.show()
復制代碼
2. 顯示某個通道
復制代碼
# 顯示圖片的第一個通道
lena_1 = lena[:,:,0]
plt.imshow('lena_1')
plt.show()
# 此時會發現顯示的是熱量圖,不是我們預想的灰度圖,可以添加 cmap 參數,有如下幾種添加方法:
plt.imshow('lena_1', cmap='Greys_r')
plt.show()
img = plt.imshow('lena_1')
img.set_cmap('gray') # 'hot' 是熱量圖
plt.show()
復制代碼
3. 將 RGB 轉為灰度圖
matplotlib 中沒有合適的函數可以將 RGB 圖轉換為灰度圖,可以根據公式自定義一個:
復制代碼
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
gray = rgb2gray(lena)
# 也可以用 plt.imshow(gray, cmap = plt.get_cmap('gray'))
plt.imshow(gray, cmap='Greys_r')
plt.axis('off')
plt.show()
復制代碼
4. 對圖像進行放縮
這里要用到 scipy
復制代碼
from scipy import misc
lena_new_sz = misc.imresize(lena, 0.5) # 第二個參數如果是整數,則為百分比,如果是tuple,則為輸出圖像的尺寸
plt.imshow(lena_new_sz)
plt.axis('off')
plt.show()
復制代碼
5. 保存圖像
5.1 保存 matplotlib 畫出的圖像
該方法適用於保存任何 matplotlib 畫出的圖像,相當於一個 screencapture。
plt.imshow(lena_new_sz)
plt.axis('off')
plt.savefig('lena_new_sz.png')
5.2 將 array 保存為圖像
from scipy import misc
misc.imsave('lena_new_sz.png', lena_new_sz)
5.3 直接保存 array
讀取之後還是可以按照前面顯示數組的方法對圖像進行顯示,這種方法完全不會對圖像質量造成損失
np.save('lena_new_sz', lena_new_sz) # 會在保存的名字後面自動加上.npy
img = np.load('lena_new_sz.npy') # 讀取前面保存的數組
二、PIL
1. 顯示圖片
from PIL import Image
im = Image.open('lena.png')
im.show()
2. 將 PIL Image 圖片轉換為 numpy 數組
im_array = np.array(im)
# 也可以用 np.asarray(im) 區別是 np.array() 是深拷貝,np.asarray() 是淺拷貝
3. 保存 PIL 圖片
直接調用 Image 類的 save 方法
from PIL import Image
I = Image.open('lena.png')
I.save('new_lena.png')
4. 將 numpy 數組轉換為 PIL 圖片
這里採用 matplotlib.image 讀入圖片數組,注意這里讀入的數組是 float32 型的,范圍是 0-1,而 PIL.Image 數據是 uinit8 型的,范圍是0-255,所以要進行轉換:
import matplotlib.image as mpimg
from PIL import Image
lena = mpimg.imread('lena.png') # 這里讀入的數據是 float32 型的,范圍是0-1
im = Image.fromarray(np.uinit8(lena*255))
im.show()
5. RGB 轉換為灰度圖
from PIL import Image
I = Image.open('lena.png')
I.show()
L = I.convert('L')
L.show()

『陸』 MFC Map的使用。。。

定義錯誤
不知道你把 KEY定義成字元串指針啥意思?

map 是鍵值對的方式存儲的。

如果要指針,需全局變數的地址。估計你用的函數內的局部變數地址了

CMap< CString, LPCTSTR, CString, LPCTSTR>

『柒』 matlab colourmap怎麼用

先用imshow或者image把圖片顯示出來,再用colormap設置圖像的顏色;

常用的配色有jet、hot、gray等等。

用法:colormapxxx

『捌』 CMap<CString, LPCTSTR, int, int> m_mpKeyword 解釋下用法和參數

CMap不能用CString作為鍵類型,推薦使用std::map。

『玖』 photoshop怎樣用阿

以下是PS的快捷鍵,你可以先記熟,在結合PS教程 應該很快就能熟練運用了
希望給個最佳。

工具箱(多種工具共用一個快捷鍵的可同時按【Shift】加此快捷鍵選取)
矩形、橢圓選框工具 【M】
裁剪工具 【C】
移動工具 【V】
套索、多邊形套索、磁性套索 【L】
魔棒工具 【W】
噴槍工具 【J】
畫筆工具 【B】
像皮圖章、圖案圖章 【S】
歷史記錄畫筆工具 【Y】
像皮擦工具 【E】
鉛筆、直線工具 【N】
模糊、銳化、塗抹工具 【R】
減淡、加深、海棉工具 【O】
鋼筆、自由鋼筆、磁性鋼筆 【P】
添加錨點工具 【+】
刪除錨點工具 【-】
直接選取工具 【A】
文字、文字蒙板、直排文字、直排文字蒙板 【T】
度量工具 【U】
直線漸變、徑向漸變、對稱漸變、角度漸變、菱形漸變 【G】
油漆桶工具 【K】
吸管、顏色取樣器 【I】
抓手工具 【H】
縮放工具 【Z】
默認前景色和背景色 【D】
切換前景色和背景色 【X】
切換標准模式和快速蒙板模式 【Q】
標准屏幕模式、帶有菜單欄的全屏模式、全屏模式 【F】
臨時使用移動工具 【Ctrl】
臨時使用吸色工具 【Alt】
臨時使用抓手工具 【空格】
打開工具選項面板 【Enter】
快速輸入工具選項(當前工具選項面板中至少有一個可調節數字) 【0】至【9】
循環選擇畫筆 【[】或【]】
選擇第一個畫筆 【Shift】+【[】
選擇最後一個畫筆 【Shift】+【]】
建立新漸變(在」漸變編輯器」中) 【Ctrl】+【N】

文件操作

新建圖形文件 【Ctrl】+【N】
用默認設置創建新文件 【Ctrl】+【Alt】+【N】
打開已有的圖像 【Ctrl】+【O】
打開為... 【Ctrl】+【Alt】+【O】
關閉當前圖像 【Ctrl】+【W】
保存當前圖像 【Ctrl】+【S】
另存為... 【Ctrl】+【Shift】+【S】
存儲副本 【Ctrl】+【Alt】+【S】
頁面設置 【Ctrl】+【Shift】+【P】
列印 【Ctrl】+【P】
打開「預置」對話框 【Ctrl】+【K】
顯示最後一次顯示的「預置」對話框 【Alt】+【Ctrl】+【K】
設置「常規」選項(在預置對話框中) 【Ctrl】+【1】
設置「存儲文件」(在預置對話框中) 【Ctrl】+【2】
設置「顯示和游標」(在預置對話框中) 【Ctrl】+【3】
設置「透明區域與色域」(在預置對話框中) 【Ctrl】+【4】
設置「單位與標尺」(在預置對話框中) 【Ctrl】+【5】
設置「參考線與網格」(在預置對話框中) 【Ctrl】+【6】
外發光效果(在」效果」對話框中) 【Ctrl】+【3】
內發光效果(在」效果」對話框中) 【Ctrl】+【4】
斜面和浮雕效果(在」效果」對話框中) 【Ctrl】+【5】
應用當前所選效果並使參數可調(在」效果」對話框中) 【A】

圖層混合模式

循環選擇混合模式 【Alt】+【-】或【+】
正常 【Ctrl】+【Alt】+【N】
閾值(點陣圖模式) 【Ctrl】+【Alt】+【L】
溶解 【Ctrl】+【Alt】+【I】
背後 【Ctrl】+【Alt】+【Q】
清除 【Ctrl】+【Alt】+【R】
正片疊底 【Ctrl】+【Alt】+【M】
屏幕 【Ctrl】+【Alt】+【S】
疊加 【Ctrl】+【Alt】+【O】
柔光 【alt】+【shit】+【F】
強光 【Ctrl】+【Alt】+【H】
顏色減淡 【Ctrl】+【Alt】+【D】
顏色加深 【Ctrl】+【Alt】+【B】
變暗 【Ctrl】+【Alt】+【K】
變亮 【Ctrl】+【Alt】+【G】
差值 【Ctrl】+【Alt】+【E】
排除 【Ctrl】+【Alt】+【X】
色相 【Ctrl】+【Alt】+【U】
飽和度 【Ctrl】+【Alt】+【T】
顏色 【Ctrl】+【Alt】+【C】
光度 【Ctrl】+【Alt】+【Y】
去色 海棉工具+【Ctrl】+【Alt】+【J】
加色 海棉工具+【Ctrl】+【Alt】+【A】
暗調 減淡/加深工具+【Ctrl】+【Alt】+【W】
中間調 減淡/加深工具+【Ctrl】+【Alt】+【V】
高光 減淡/加深工具+【Ctrl】+【Alt】+【Z】

選擇功能

全部選取 【Ctrl】+【A】
取消選擇 【Ctrl】+【D】
重新選擇 【Ctrl】+【Shift】+【D】
羽化選擇 【Ctrl】+【Alt】+【D】
反向選擇 【Ctrl】+【Shift】+【I】
路徑變選區 數字鍵盤的【Enter】
載入選區 【Ctrl】+點按圖層、路徑、通道面板中的縮約圖

濾鏡

按上次的參數再做一次上次的濾鏡 【Ctrl】+【F】
退去上次所做濾鏡的效果 【Ctrl】+【Shift】+【F】
重復上次所做的濾鏡(可調參數) 【Ctrl】+【Alt】+【F】
選擇工具(在「3D變化」濾鏡中) 【V】
立方體工具(在「3D變化」濾鏡中) 【M】
球體工具(在「3D變化」濾鏡中) 【N】
柱體工具(在「3D變化」濾鏡中) 【C】
軌跡球(在「3D變化」濾鏡中) 【R】
全景相機工具(在「3D變化」濾鏡中) 【E】

視圖操作

顯示彩色通道 【Ctrl】+【~】
顯示單色通道 【Ctrl】+【數字】
顯示復合通道 【~】
以CMYK方式預覽(開) 【Ctrl】+【Y】
打開/關閉色域警告 【Ctrl】+【Shift】+【Y】
放大視圖 【Ctrl】+【+】
縮小視圖 【Ctrl】+【-】
滿畫布顯示 【Ctrl】+【0】
實際象素顯示 【Ctrl】+【Alt】+【0】
向上卷動一屏 【PageUp】
向下卷動一屏 【PageDown】
向左卷動一屏 【Ctrl】+【PageUp】
向右卷動一屏 【Ctrl】+【PageDown】
向上卷動10 個單位 【Shift】+【PageUp】
向下卷動10 個單位 【Shift】+【PageDown】
向左卷動10 個單位 【Shift】+【Ctrl】+【PageUp】
向右卷動10 個單位 【Shift】+【Ctrl】+【PageDown】
將視圖移到左上角 【Home】
將視圖移到右下角 【End】
顯示/隱藏選擇區域 【Ctrl】+【H】
顯示/隱藏路徑 【Ctrl】+【Shift】+【H】
顯示/隱藏標尺 【Ctrl】+【R】
顯示/隱藏參考線 【Ctrl】+【;】
顯示/隱藏網格 【Ctrl】+【」】
貼緊參考線 【Ctrl】+【Shift】+【;】
鎖定參考線 【Ctrl】+【Alt】+【;】
貼緊網格 【Ctrl】+【Shift】+【」】
顯示/隱藏「畫筆」面板 【F5】
顯示/隱藏「顏色」面板 【F6】
顯示/隱藏「圖層」面板 【F7】
顯示/隱藏「信息」面板 【F8】
顯示/隱藏「動作」面板 【F9】
顯示/隱藏所有命令面板 【TAB】
顯示或隱藏工具箱以外的所有調板 【Shift】+【TAB】
文字處理(在」文字工具」對話框中)

左對齊或頂對齊 【Ctrl】+【Shift】+【L】
中對齊 【Ctrl】+【Shift】+【C】
右對齊或底對齊 【Ctrl】+【Shift】+【R】
左/右選擇 1 個字元 【Shift】+【←】/【→】
下/上選擇 1 行 【Shift】+【↑】/【↓】
選擇所有字元 【Ctrl】+【A】
選擇從插入點到滑鼠點按點的字元 【Shift】加點按
左/右移動 1 個字元 【←】/【→】
下/上移動 1 行 【↑】/【↓】
左/右移動1個字 【Ctrl】+【←】/【→】
將所選文本的文字大小減小2 點象素 【Ctrl】+【Shift】+【<】
將所選文本的文字大小增大2 點象素 【Ctrl】+【Shift】+【>】
將所選文本的文字大小減小10 點象素 【Ctrl】+【Alt】+【Shift】+【<】
將所選文本的文字大小增大10 點象素 【Ctrl】+【Alt】+【Shift】+【>】
將行距減小2點象素 【Alt】+【↓】
將行距增大2點象素 【Alt】+【↑】
將基線位移減小2點象素 【Shift】+【Alt】+【↓】
將基線位移增加2點象素 【Shift】+【Alt】+【↑】
將字距微調或字距調整減小20/1000ems 【Alt】+【←】
將字距微調或字距調整增加20/1000ems 【Alt】+【→】
將字距微調或字距調整減小100/1000ems 【Ctrl】+【Alt】+【←】
將字距微調或字距調整增加100/1000ems 【Ctrl】+【Alt】+【→】
設置「增效工具與暫存檔」(在預置對話框中) 【Ctrl】+【7】
設置「內存與圖像高速緩存」(在預置對話框中) 【Ctrl】+【8】
編輯操作

還原/重做前一步操作 【Ctrl】+【Z】
還原兩步以上操作 【Ctrl】+【Alt】+【Z】
重做兩步以上操作 【Ctrl】+【Shift】+【Z】
剪切選取的圖像或路徑 【Ctrl】+【X】或【F2】
拷貝選取的圖像或路徑 【Ctrl】+【C】
合並拷貝 【Ctrl】+【Shift】+【C】
將剪貼板的內容粘到當前圖形中 【Ctrl】+【V】或【F4】
將剪貼板的內容粘到選框中 【Ctrl】+【Shift】+【V】
自由變換 【Ctrl】+【T】
應用自由變換(在自由變換模式下) 【Enter】
從中心或對稱點開始變換 (在自由變換模式下) 【Alt】
限制(在自由變換模式下) 【Shift】
扭曲(在自由變換模式下) 【Ctrl】
取消變形(在自由變換模式下) 【Esc】
自由變換復制的象素數據 【Ctrl】+【Shift】+【T】
再次變換復制的象素數據並建立一個副本 【Ctrl】+【Shift】+【Alt】+【T】
刪除選框中的圖案或選取的路徑 【DEL】
用背景色填充所選區域或整個圖層 【Ctrl】+【BackSpace】或【Ctrl】+【Del】
用前景色填充所選區域或整個圖層 【Alt】+【BackSpace】或【Alt】+【Del】
彈出「填充」對話框 【Shift】+【BackSpace】
從歷史記錄中填充 【Alt】+【Ctrl】+【Backspace】

圖像調整

調整色階 【Ctrl】+【L】
自動調整色階 【Ctrl】+【Shift】+【L】
打開曲線調整對話框 【Ctrl】+【M】
在所選通道的曲線上添加新的點(『曲線』對話框中) 在圖象中【Ctrl】加點按
在復合曲線以外的所有曲線上添加新的點(『曲線』對話框中) 【Ctrl】+【Shift】
加點按
移動所選點(『曲線』對話框中) 【↑】/【↓】/【←】/【→】
以10點為增幅移動所選點以10點為增幅(『曲線』對話框中) 【Shift】+【箭頭】
選擇多個控制點(『曲線』對話框中) 【Shift】加點按
前移控制點(『曲線』對話框中) 【Ctrl】+【Tab】
後移控制點(『曲線』對話框中) 【Ctrl】+【Shift】+【Tab】
添加新的點(『曲線』對話框中) 點按網格
刪除點(『曲線』對話框中) 【Ctrl】加點按點
取消選擇所選通道上的所有點(『曲線』對話框中) 【Ctrl】+【D】
使曲線網格更精細或更粗糙(『曲線』對話框中) 【Alt】加點按網格
選擇彩色通道(『曲線』對話框中) 【Ctrl】+【~】
選擇單色通道(『曲線』對話框中) 【Ctrl】+【數字】
打開「色彩平衡」對話框 【Ctrl】+【B】
打開「色相/飽和度」對話框 【Ctrl】+【U】
全圖調整(在色相/飽和度」對話框中) 【Ctrl】+【~】
只調整紅色(在色相/飽和度」對話框中) 【Ctrl】+【1】
只調整黃色(在色相/飽和度」對話框中) 【Ctrl】+【2】
只調整綠色(在色相/飽和度」對話框中) 【Ctrl】+【3】
只調整青色(在色相/飽和度」對話框中) 【Ctrl】+【4】
只調整藍色(在色相/飽和度」對話框中) 【Ctrl】+【5】
只調整洋紅(在色相/飽和度」對話框中) 【Ctrl】+【6】
去色 【Ctrl】+【Shift】+【U】
反相 【Ctrl】+【I】

圖層操作

從對話框新建一個圖層 【Ctrl】+【Shift】+【N】
以默認選項建立一個新的圖層 【Ctrl】+【Alt】+【Shift】+【N】
通過拷貝建立一個圖層 【Ctrl】+【J】
通過剪切建立一個圖層 【Ctrl】+【Shift】+【J】
與前一圖層編組 【Ctrl】+【G】
取消編組 【Ctrl】+【Shift】+【G】
向下合並或合並聯接圖層 【Ctrl】+【E】
合並可見圖層 【Ctrl】+【Shift】+【E】
蓋印或蓋印聯接圖層 【Ctrl】+【Alt】+【E】
蓋印可見圖層 【Ctrl】+【Alt】+【Shift】+【E】
將當前層下移一層 【Ctrl】+【[】
將當前層上移一層 【Ctrl】+【]】
將當前層移到最下面 【Ctrl】+【Shift】+【[】
將當前層移到最上面 【Ctrl】+【Shift】+【]】
激活下一個圖層 【Alt】+【[】
激活上一個圖層 【Alt】+【]】
激活底部圖層 【Shift】+【Alt】+【[】
激活頂部圖層 【Shift】+【Alt】+【]】
調整當前圖層的透明度(當前工具為無數字參數的,如移動工具) 【0】至【9】
保留當前圖層的透明區域(開關) 【/】
投影效果(在」效果」對話框中) 【Ctrl】+【1】
內陰影效果(在」效果」對話框中) 【Ctrl】+【2】
F1 -幫助
F2 -剪切
F3 -拷貝
F4-粘貼
F5-隱藏/顯示畫筆面板
F6-隱藏/顯示顏色面板
F7-隱藏/顯示圖層面板
F8-隱藏/顯示信息面板
F9-隱藏/顯示動作面板
F12-恢復
Shift+f5-填充
Shift+f6-羽化
Shift+f7-選擇→反選
ctrl+h-隱藏選定區域
ctrl+d-取消選定區域
ctrl+w-關閉文件
ctrl+Q-退出PHOTOSHOP
Esc-取消操作

2.按Tab鍵可以顯示或隱藏工具箱和調色板,按"shift+Tab"鍵可以顯示或隱藏除工具以外的其他面板。

3.按住shift用繪畫工具在畫面點擊就可以在每兩點間畫出直線,按住滑鼠拖動便可畫出水平或垂直線。

4.使用其他工具時,按住ctrl鍵可切換到move工具的功能(除了選擇hand工具時)按住空格鍵可切換到hand工具的功能。

5.同時按住alt和ctrl+或-可讓畫框與畫面同時縮放。

6.使用其他工具時,按ctrl+空格鍵可切換到zoom in工具放大圖象顯示比例,按alt+ctrl+空格可切換到zoom out工具縮小圖象顯示比例。

7.在hand工具上雙擊滑鼠可以使圖象匹配窗口的大小顯示。

8.按住alt雙擊photoshop底板相當於open as。

9.按住shife雙擊photoshop底板相當於save。

10.按住ctrl雙擊photoshop底板相當於new file。

11.按住ale點擊工具盒中帶小點的工具可循環選擇隱藏的工具。

12.按ctrl+alt+{數字鍵0}或在zoom工具上雙擊滑鼠可使圖象文件以1:1比例顯示。

13.在各種設置框內,只要按住alt鍵,cancel鍵會變成鍵reset鍵,按reset鍵變可恢復默認設置。

14.按shift+backspace鍵可直接調用fill填充對話框。

15.按alt+backspace(delete)鍵可將前景色填入選取框按ctrl+backspace(delete)鍵可將背景色填入選取框。

16.同時按住ctrl和alt移動可馬上復制到新的layer並可同時移動物體。

17.再用裁切工具裁切圖片並調整裁切點時按住ctrl便不會貼近畫面邊緣。

18.若要在一個宏(action)中的某一命令後新增一條命令,可以先選中該命令,然後單擊調色板上的開始錄制(begin recording)圖標,選擇要增加的命令,再單擊停止錄制(stop recording)圖標即可。

19.在layers,channels,paths面板上,按alt單擊,按單擊這些面板底部的工具圖標時,對於有對話的工20.在使用filter→render→lighting effectts濾鏡時,若要在對話框內復制光源,可先按住alt鍵後再拖動光源即可實現復制。

21.調用curves對話框時,按住鍵於格線內單擊滑鼠可以增加網格線,提高曲線精度。

22.若要在兩上窗口間拖放拷貝,拖動過程中按住shift鍵,圖像拖動到目的窗口後會自動居中。

23.按住shift選擇區域時可在原區域上增加新的區域;按住alt選擇區域時,可在原區域上減去新選區域,同時按住shift和alt選擇區域時,可取得與原選擇區域相交的部分

24.移動圖層和選取框時,按住shift鍵可做水平,垂直或45度角的移動,按鍵盤上的方向鍵,可做每次1像素的移動,按住shift鍵再鍵盤上的方向鍵可做每次10像素的移動。

25.使用筆形工具製作路徑是按住shift鍵可以強制路徑或方向線成水平或垂直或45度角按住ctrl鍵可暫時切換到路徑選取工具按住alt鍵將筆形游標在黑色的接點上單擊可以改變方向線的方向,使曲線可以轉折;按alt鍵用路徑選取(direct selection)工具單擊路徑會選取整個路徑,要同時選取多個路徑可按住shift後逐個單擊,用路徑選取工具是按住ctrl+alt鍵移近路徑會切換到加節點與件節點的筆行工具。

26.在使用選取工具時,按shift鍵拖動滑鼠可以在原選取框外增加選取范圍;同時按shift與alt鍵拖動滑鼠可以選取與原選取框重疊的范圍(交集)。

27.ctrl+delete加填前景顏色,ctrl或shift加delete填背景顏色。

28.空格加ctrl(注意順序)快速調出放大鏡, 再加alt變成縮小鏡。

29.若要將圖像用於網面上,可將圖像模式設置為indexed color索引色彩模式,有文件小,傳輸快的優點, 如果再選擇gif89a export(gif輸出),可以設置透明的效果,並將文件保存成gif格式。

30.使用filter→render→clouds濾鏡時,先按住alt可加雲彩的反差,先按住shift鍵則降低反差 。

31.雙擊放大鏡可使畫面以的100%比例顯示大小。

32.按ctrl+r 出現標尺,在標尺拉出輔助線時按住就可以准確的讓輔助線貼近刻度。

33.在使用自由變形(layer→free→transform)功能時,按ctrl鍵並拖動某一控制點可以進行隨意變形的調整,"shift+ctrl"鍵並拖動某一控制點可以時行傾斜調整;按alt鍵並拖動某一控制點可以進行對稱調整;按shift+ctrl+alt鍵並拖動某一控制點可以進行透視效果的調整。

34.在photoshop5.0以上版本中右鍵點擊文字,在layer選effects...可快速做出隨字體改變的陰影及光芒效果。

35.在安裝photoshop的時候在select country中選擇all other countries;在select components中確定選擇了cmap files;這樣安裝完後,您的photoshop就可以正常使用中文了。

36.在photoshop5.0中在history控制面板中點右上角的小三角選clear history可以暫時緩解你對虛擬內存的要求。

37.在使用filter→render→clouds濾鏡時,若要產生更多明顯的紋理圖案,可先按住alt鍵後再執行該命令。

38.大部分工具在使用時按caps lock鍵可使工具圖標與精 確十線相互切換。

39.按f鍵可把photoshop面板的顯示模式順序替換為:標准顯示 帶菜單的全屏顯示 全屏顯示。

40.想從中心開始畫選框可按住alt拖動。

41.按住shift加上tab鍵可以顯示或隱藏除工具 箱外的其他調色板

『拾』 CArray,CList,CMap如何實化

CMap<CString, LPCTSTR, CString, LPCTSTRm_ItemMap; CString strKey = _T(""), str = _T("");int i;for(i = 0; i < 5; i++){strKey.Format("%d", i);//這個是鍵str.Format("A%d", i); //鍵對應的值m_ItemMap.SetAt(strKey, str);}2、遍歷整個CMap的常用方法。 POSITION pos = m_ItemMap.GetStartPosition();while(pos){m_ItemMap.GetNextAssoc(pos, strKey, str); cout<< strKey<< ":"<< str<< endl;}3、在CMAP中查找相應的數據項。 CString pReset; if(m_ItemMap.Lookup("1", pReset)){cout<<pReset<<endl;}哎,這是乎又是一篇沒有什麼技術含量的應用性文章,但我,又能怎麼樣?雖然,我們在《CMap如何使用,用法舉例》中,已經非常詳細的說明了CMap參數的用法,也在其他的專題中介紹過了其它模板類的實化過程,不過我還是擔心是否每個人都有足夠的耐心去看完那些蜿蜒之天際的文章。所以,我們把CArray、CList以及CMap的參數問題獨立出來,在此著重的講解一番。 還是先看一個簡單的實化例子吧: typdedef CMap<CString, LPCTSTR ,CString, CString&CStrMap;顯然,向這樣的用法,是無可厚非的,就像我們國家的中醫,在經過無數次致命的嘗試之後,得到了這個不再苦澀的,似乎也可以包治百病的靈丹妙葯。可是,這畢竟是個令人心驚膽戰的用法,尤其對於那些並不熟悉並試圖熟悉CMap的小傢伙們。我們還是先來看看CMap類型參數列表吧: template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE 我們看到在CMap中,類型參數ARG_KEY的引參是 LPCTSTR,而與之對應的KEY的引參卻又是CString,它們是如此的固執,既然都指代了同樣的內容,為什麼又偏偏將對方視若不見呢?其實,這與CMap的內部實現存在著密不可分的關系,由於在CMap的內部,建立了一個Hash表,所以,必須將所有的傳入參數置換為類似於int類型的整數,這樣才可以符合散列函數的參數類型,否則CMap在編譯時會報錯。那麼又是為什麼?我們可以將ARG_KEY使用LPCTSTR來實化呢?其實,這又牽扯到了Hash表的實現問題,當然其中也包含了CString的實現問題。我們知道,存儲在CStrMap內部的KEY仍然是CString,而我們對Hash表的操作,無非也就是給出一個整型的數,然後根據散列函數來尋找一個存儲地址而已,尤其,當我們使用operator[]操作符的時候,如果我們給定的KEY所對應的VALUE並不存在的話,CMap會自動的為我們生成一個相應的元組,而如果你繼而對它賦值的話,它會將ARG_KEY直接賦值給KEY,而這里就涉及到KEY的賦值構造函數了(其實,我更想叫它賦值操作符),現在我們使用的KEY是CString,而我們卻要將一個LPCTSTR賦值於它,所以,我們就必須重載這個函數,其實也就是這樣的一個函數: CString& operator=(LPCTSTR lpsz); 顯然,這立即解決了我們的問題,不過,這僅僅是從邏輯功能層面,如果你傳入的KEY是個很長的字元串的話,那麼必然會對CStrMap的性能造成影響,其實這樣的隱患也同樣存在於VALUE身上,乃至其它類似的模板類上,這不得不引起我們的足夠重視!C++ ,這門完美的近乎沒有任何瑕疵的OOP語言,無疑就是閃耀星空的曠世巨獻,然而,這似乎並沒有引起每個人的共鳴。C++從C中的誕生,似乎就註定了,它永遠都不可能像JAVA那樣血統純正,我不得不承認,它並非一個嚴格意義上的OOP(Oriented-object language,面向對象設計語言),然而就是這種近乎不合理的缺陷,卻又造就了它近乎不合理的適應性,我是向來瞧不起解釋性語言的,因為我本人就編寫過腳本的解釋器,實踐證明,它們的效率要遠遠的落後於編譯性語言,雖然它們常常號稱自己如何的平台無關,如何的小而強大。 但,對於絕大多數的程序員來說,JAVA的確有很多的優勢,也許其中之一,便是簡單易學,其實這似乎更像一個借口。指針一度是困擾相當一部分程序員的暗物質,而C++更將這種震懾發揮到極致。顯然C++的確很難,難到令這個世界上,至少50%以上的程序員,望而卻步。然而一個幾乎包羅萬象的程序設計語言,幾乎能容忍一切的全能語言,它到底有著什麼樣的魔力,卻令另外50%的人如此的鍾意,如此的著迷? 偏題三千里,言歸正傳。 至於C++的性能,似乎一直被OOP的性格所掩蓋,而OOP主張的面向對象編程,更讓許多竊竊私語的程序員有了足夠的底氣發言,同時他們宣稱,C++顯然就是應該由對象統治的世界,其實--大錯特錯,簡直錯的一敗塗地。C++,歸根結底,還是由指針執政,以致我們可以直接的操縱內存,直接和系統底層會話,並且還能實現我們空前強大的令人炫目的多態。所以,我們必須要利用這個得天獨厚的資源。 偏題一千里,再言歸正傳。 在程序中使用指針,幾乎可以使你的程序恢復到C的性能級別,顯然我不會迴避你正在思考命題,不錯,C的性能的確要高於C++,而匯編語言的性能顯然要進一步的高於C,只要學過一點編譯原理的人,應該不會反對這個早已過時的辯論焦點。關鍵在於,從C過度到C++,已經是一種編程思維的轉變。然而很多人,既沒有繼承C的高性能性,又未能領悟C++的封裝、繼承與多態性,卻妄圖從C直接飛到C++上,卻被掛在了C與C++的中間,左右為難,大概停留到了C+這門語言去了。 言歸正傳。 我們在定義函數的時候,應該盡可能的少傳對象,而更應該傳指針或者引用,我們知道對於編譯器內部來說,引用其實就是一個指針。這最主要的原因是,我們不必再為函數參數的圧棧而苦惱不已;同樣,我們也不應該在函數結束之後,用對象來返回,這同樣增加了函數圧棧的開銷,而更應該適可的返回一個指針或者一個引用,當然,這樣的指針和引用,絕對不能指向一個函數體內的臨時對象。然而傳入CMap中的類型參數,到底應該是什麼,這似乎已經上升到了演算法的層次,從而使我們對於實化本身的討論變的毫無意義。 我也許會主張,將CMap實化成這種模樣: typedef CMap<CString*, CString*, CString*, CString* CStrPtrMap; 個中緣由,當然還是出於對效率的考慮,我們在SetAt之前先new出一個CString對象,然後將其填入CStrPtrMap,這樣的好處在於我們在SetAt的時候不需要去調用CString的賦值構造函數,而僅僅作簡單的數據拷貝,這樣的行為幾乎適合所有的復雜數據結構,包括類,結構體。當然,唯一不能忘記的是,必須在必要的時候釋放那些new出來的CString對象,否則,將會導致嚴重的內存泄露! typedef CMap<CString, LPCTSTR, CString*, CString* CStrPtrMap; 啊,這又是一個長著人身豬臉的八戒啊!不過,既然要去西天取經,八戒就八戒吧。 當然,千叮萬囑的還是,別忘記釋放為CString*申請的內存!

閱讀全文

與cmap的使用方法相關的資料

熱點內容
勃起功能障礙治療方法 瀏覽:676
現有檢測甲醛的方法 瀏覽:802
食療手抖最佳治療方法 瀏覽:547
經濟學中規避風險的方法有哪些 瀏覽:274
房顫的中醫治療方法 瀏覽:761
6缸活塞安裝方法 瀏覽:351
常用應用題解題方法介紹 瀏覽:777
路亞竿魚鉤的連接方法 瀏覽:852
柔性防水膠帶安裝方法 瀏覽:418
硅膠怎麼用香蕉水去除最簡單方法 瀏覽:188
雞蛋茶的食用方法 瀏覽:975
ppr帶水接管方法視頻 瀏覽:1001
鋼絲繩安裝三通的方法 瀏覽:965
40除32簡便方法 瀏覽:331
測出自己懷孕的方法有哪些 瀏覽:475
汽車平面軸承安裝方法 瀏覽:571
學唱相聲的技巧和方法 瀏覽:905
如何判斷自己有沒有雜化方法 瀏覽:846
桃木劍打磨方法視頻 瀏覽:645
腦神經用什麼方法治療 瀏覽:937