我想使用多线程来批量处理图片。但是,问题是在图小时没有什么问题。但是,在处理我数码相机拍摄的2M左右的JPG图片是,总是不能正确处理(图片在Assign或Draw时,常无效),不知是什么原因?恳请前辈们指点二三。谢谢!

解决方案 »

  1.   

    主要在下面的步骤容易出现问题:        TmpBitmap32.Assign(SrcBMP);
            TmpBitmap32.Draw(X , Y , SmallImg);
            SrcBMP.Assign(TmpBitmap32);是不是使用TThread 创建的线程有内存或执行时间的限制?? 不太明白为什么会出现问题!!
      

  2.   

    使用线程类的Synchronize方法同步调用
      

  3.   

    我访问界面的 VCL 控件都是采用 Synchronize 同步的。但是我在线程中动态创建了 TBitmap32 和 TBitmap对象,是否不能直接创建??
      

  4.   

    你可以在你继承的线程类中把这些处理写在一个方法内,然后用Synchronize去调用这个方法,避免多个线程间出现问题
      

  5.   

    在线程中设置临界区保护,同时每次操作图片时,将对象 lock ,完了再unlock 
    不然很容易引起多个线程同一时间执行某个过程,导致引起错误
      

  6.   

    trace你的SrcBMP,看是不是完整讀取了