- 论坛徽章:
- 0
|
我用gd库在freebsd虚拟机上写了个缩小图片的程序(c++),但缩小后的图片颜色确与原图大不相同,感觉像256色,但看了php程序中缩小图片的代码,是基本相同的,不知什么原因,请教高手们有谁知道帮帮我。
我的代码是:
bool resize_image(const string &filename)
{
gdImagePtr im_in;
gdImagePtr im_out;
FILE *in;
FILE *out;
string in_filename = make_fullpath_name(SAVE_IMAGE_PATH, filename.c_str());
if ((in = fopen(in_filename.c_str(), "rb" ) == NULL)
{
return false;
}
im_in = gdImageCreateFromJpeg(in);
fclose(in);
im_out = gdImageCreate(im_in->;sx / 3, im_in->;sy / 3);
gdImageCopyResized(im_out, im_in, 0, 0, 0, 0, im_out->;sx, im_out->;sy, im_in->;sx, im_in->;sy);
string out_filename;
string tmp_str;
string::size_type idx = in_filename.find("." ;
if (idx == string::npos)
{
tmp_str = in_filename;
}
tmp_str = in_filename.substr(0, idx);
out_filename = tmp_str + "_small.jpg";
if ((out = fopen(out_filename.c_str(), "wb" ) == NULL)
{
return false;
}
gdImageJpeg(im_out, out, 90);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
return true;
} |
|