希望做的是类似于ACDSEE的图像拖拽功能,即图像跟着按下去的鼠标跑,用bitblt并不难做,但只能用于bmp图像,如果从jpg文件中读取的图像,就会提示只能修改bmp图像,该怎么处理??(如果可以,不想存bmp临时文件)还有就是图像在更新时闪烁该怎么解决,是截获哪个事件?然后怎么办??不记得了。

解决方案 »

  1.   

    把jpg文件转化成bmp文件处理
    我只知道bcb的写法,首先在头文件添加jpeg.hpp文件
    然后Graphics::TBitmap* tBitmap=new Graphics::TBitmap();
        TJPEGImage* tJpg=new TJPEGImage();
        tJpg->LoadFromFile("c:\\1.bmp");
        tBitmap->Assign(tJpg);然后就可以对图片进行操作了,你把上述代码改成delphi的就可以了。
      

  2.   

    thanks,原来就是assign一下,我在delphi下是这样写的:var
        bmp:TBitmap;
        jpg:TJPEGImage;
    begin
        bmp:=TBitmap.Create();
        jpg:=TJPEGImage.Create();
        jpg.LoadFromFile('e:\bbb.jpg');
        bmp.Assign(jpg);
        image3.Picture:=TPicture(bmp);
        image3.AutoSize:=true;然后就可以使用对image3.canvas使用bitblt了,更新时闪烁该怎么解决??