如何把颜色为32位的图像转成颜色为16位的图像

解决方案 »

  1.   

    以下是转换成24的代码,改改就可以用了;
    var bmp,zbmp:Tbitmap;
    begin 
    BMP:=TBitmap.Create;
    BMp.LoadFromFile('d:\1.bmp');
    zbmp:=TBitMap.Create;
    zbmp.PixelFormat:=pf24bit;
    zbmp.height:=144;
    zbmp.Width :=144;
    zbmp.Canvas.CopyMode:=cmSrcCopy;
    SetStretchBltMode(zbmp.Canvas.Handle,HALFTONE);
    StretchBlt(zbmp.Canvas.Handle,0,0,zbmp.Width,CSLSBmp.Height,
    Bmp.Canvas.Handle,0,0,BMp.Width,BMp.Height,SRCCOPY);
    zbmp.SaveToFile('d:\1.bmp');
    end;