主題: c的讀圖檔
查看單個文章
舊 2009-02-13, 10:20 PM   #6 (permalink)
pedrowong 帥哥
註冊會員
 
pedrowong 的頭像
榮譽勳章
UID - 312366
在線等級: 級別:13 | 在線時長:250小時 | 升級還需:2小時級別:13 | 在線時長:250小時 | 升級還需:2小時級別:13 | 在線時長:250小時 | 升級還需:2小時
註冊日期: 2008-10-25
住址: 台北
文章: 94
精華: 0
現金: 207 金幣
資產: 367 金幣
預設 用 GDLIB 做圖像旋轉

// 省略不重要部份
....
....
imgtype = JPG;
....
File = fopen(Buffer,"rb");
....
....
if(imgtype == JPEG) {
img = gdImageCreateFromJpeg(File);
} else if(imgtype == GIF) {
img = gdImageCreateFromGif(File);
} else if(imgtype == PNG) {
img = gdImageCreateFromPng(File);
} else {
img = gdImageCreateFromWBMP(File);
}
fclose(File);
...
...
// rotate angle
i = 90;
....

aCos = cos (i * .0174532925);
aSin = sin (i * .0174532925);

size_x = gdImageSX(img);
size_y = gdImageSY(img);

switch(i) {
case 180:
if (imgtype == GIF ||
imgtype == WBMP)
new_img = gdImageCreate(size_x,size_y);
else
new_img = gdImageCreateTrueColor(size_x,size_y);

break;
case 90:
case 270:
if (imgtype == GIF ||
imgtype == WBMP)
new_img = gdImageCreate(size_y,size_x);
else
new_img = gdImageCreateTrueColor(size_y,size_x);
break;
default:
aCos = cos (i * .0174532925);
aSin = sin (i * .0174532925);
if (imgtype == GIF ||
imgtype == WBMP)
new_img = gdImageCreate(abs((int)(size_x*aCos))+abs((int)(size_y*aSin)),
abs((int)(size_y*aCos))+abs((int)(size_x*aSin)));
else
new_img = gdImageCreateTrueColor(abs((int)(size_x*aCos))+abs((int)(size_y*aSin)),
abs((int)(size_y*aCos))+abs((int)(size_x*aSin)));

break;
}
....
..
.



pedrowong 目前離線  
送花文章: 4, 收花文章: 84 篇, 收花: 193 次
回覆時引用此帖
有 2 位會員向 pedrowong 送花:
magicwoo (2009-02-14),NiGHTsC (2009-02-15)
感謝您發表一篇好文章