名前 題名 ▼ Saraさん > みなさん、こんにちは。 > > ちょっと、お知恵を拝借m(_ _)m > > 以下のような関数を書いて実行すると、大概は正常にイメージ変換しますが、 > > WICImage.SaveToStreamが失敗したときに、TStreamAdapterでメモリリークが > 起きます。(WIC対応のActiveXなどを利用したときにまれに起きる) > これを回避する手立てを探しています。 > > おわかりになる方がいらっしゃいましたら、お願いいたします。 > > function WicSave:Boolean; > var WICImage : TWICImage; > Mem : TMemoryStream; > begin > Result := False; > WICImage := TWICImage.Create; > try > Mem := TMemoryStream.Create; > try > Image.Bitmap.SaveToStream(Mem); > Mem.Position := 0; > WICImage.LoadFromStream(Mem); > finally > Mem.Free; > end; > WICImage.EncoderContainerFormat := 該当するフォーマットのGUID; > //GUID_ContainerFormatWmpなど > if not WICImage.Empty then begin > Mem := TMemoryStream.Create; > try > try > WICImage.SaveToStream(Mem); > if Mem.Size > 0 then begin > Mem.SaveToFile(ファイル名); > Result := True; > end; > except > > end; > finally > Mem.Free; > end; > end; > finally > WICImage.Free; > end; > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link