A. 怎樣快速學好Ai!
你是要自學的思路么?
1、熟悉左側工具欄的每個工具的功能
2、熟悉右側菜單欄的功能及頭部菜單欄的功能
3、掌握鋼筆繪圖,必須要熟練掌握
4、掌握各種效果的製作方法,例如:漸變、陰影、不透明蒙版、混合、網格
5、熟悉對齊和路徑查找器的各個功能
6、熟悉排版及刀模、紙張尺寸及排版限制、注意事項等
7、熟悉各印刷工藝的色彩、尺寸、製造限制及事項
8、學習製作各類包裝及印刷稿的製作流程及製作細節
9、臨摹他人的作品,多看、多想、多理解、多欣賞他人作品
10、開始進入實戰,找些東西自己來做;前提是要清楚自己做的東西有哪些要求。可無償幫別人做點東西開始或者去接一些小的訂單,可開淘寶等。不滿意頂多退款給客戶
11、做之前要先跟客戶商量,要做成什麼效果;如沒有要求的話對新手來說是很苦惱的,會無從下手。
12、再學習illustrator的同事也要掌握photoshop,兩款軟體結合使用才是硬道理
13、偷師:如不知如何了解各行業印刷流程及工藝方法可加企業QQ裝扮成客戶,跟對方洽談。便可得知、屢試不爽!
14、臨摹和抄襲要適可而止,不要依賴;不然只能停留在底層。
最好總結一句話:人分兩種,一種是教不會的,一種是不用教的!
給自己定個方向,一般從基礎到嫻熟操作只需要兩個月時間。之後的只能看自己的天賦了!
有些東西和製作方法不要刻意去學,多半都記不住的。等需要用的時候再去看怎麼做,印象會更深刻。能夠事半功倍!
註:設計不易做,入行需謹慎。
B. windows環境,多線程情況下,C語言向文件寫入數據。
下面的程序,編譯之後,你可以運行很多個實例,目前我將文件寫在了D:\1.txt,每個程序寫1000行數據,這些值你可以自己更改(比如 寫在C:,每個程序寫10000行等),等程序都寫完後,你可以去文件中查看寫文件的結果。補充一下,我是在VC6.0環境中寫的,所以windows.h,如果你不是在這個環境中的話,可能需要修改一些定義,比如DWORD等。其他的API都是windows平台提供的API;
#include <stdio.h>
#include "windows.h"
int main()
{
//獲取進程ID,因為你希望是多個進程運行同時寫一個文件,所以,我們列印出進程ID
DWORD dwProcessID = GetCurrentProcessId();
//初始化我們要寫入文件中的內容,及該內容長度;
char szContent[100] = {0};
sprintf(szContent,"process[%u] write file\r\n",dwProcessID);
DWORD dwContentLen = strlen(szContent);
//創建互斥量,這樣可以進行進程間的互斥,當然用這個也可以做線程間的互斥
HANDLE hMutex = CreateMutex(NULL,FALSE,"MyFileMutex");
if (NULL == hMutex)
{
printf("[%u]Create/Open Mutex error!\r\n",dwProcessID);
return 1;
}
//創建或打開文件
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
printf("[%u]Creat/Open file error!\r\n",dwProcessID);
return 1;
}
//循環寫入文件
for(int i = 0; i < 1000 ; i++)
{
//等待臨界資源,即鎖定文件
WaitForSingleObject(hMutex,INFINITE);
printf("Process[%u] Get the signal\r\n",dwProcessID);
DWORD len = 0;
//因為是共享寫文件,即多個程序寫一個文件,所以一定要將文件指針偏移到尾部
SetFilePointer(hFile,0,NULL,FILE_END);
//寫入文件
BOOL rnt = WriteFile(hFile,szContent,dwContentLen,&len,NULL);
if (rnt == FALSE)
{
printf("Process[%u] Fail to write file\r\n",dwProcessID);
}
//釋放互斥量,解除鎖定
ReleaseMutex(hMutex);
//加個Sleep便於我們中間觀察結果
Sleep(30);
}
CloseHandle(hMutex);
CloseHandle(hFile);
return 0;
}
應你要求,我把AIP中的宏定義解釋如下:
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,//表示程序對該文件有讀和寫的許可權
FILE_SHARE_WRITE | FILE_SHARE_READ,//表示可以多個程序共享讀和寫的許可權
NULL,
OPEN_ALWAYS,//表示打開該文件,如果該文件不存在,則創建該文件
FILE_ATTRIBUTE_ARCHIVE,//文件的屬性為存檔
NULL);
WaitForSingleObject(hMutex,INFINITE);
//INFINITE表示永遠等待,直到hMutex有信號為止
SetFilePointer(hFile,0,NULL,FILE_END);
//FILE_END表示從文件尾部開始偏移;實際此舉就是將文件指針偏移到文件尾部;