GDI+ image
Submitted by eLenka on 4 August, 2010 - 14:26

The example of embedding images of GIF, PNG, TIFF fomats to SWF using GDI+.
Source archive: gdiplus.zip (403 KB)
Sample works
Some sample source:
var OD: TOpenDialog; M: TFlashMovie; swf_name: string; begin OD := TOpenDialog.Create(nil); if OD.Execute then begin M := TFlashMovie.Create(0, 0, 10, 10, 1, scPix); M.Compressed := true; with M.AddShapeImage(OD.FileName) do begin M.Width := Bounds.Width div twips; M.Height := Bounds.Height div twips; end; M.PlaceObject(M.Shapes.Last, 1); M.ShowFrame; M.MakeStream; swf_name := ChangeFileExt(OD.FileName, '.swf'); M.SaveToFile(swf_name); M.Free; end; OD.Free; ... procedure LoadCustomImageProcedure(sender: TFlashImage; FileName: string); var EncoderID: TGUID; Mem: TMemoryStream; Adapt: TStreamAdapter; SrcImage: Pointer; begin Mem := TMemoryStream.Create; Adapt := TStreamAdapter.Create(Mem); SrcImage := nil; try GdipLoadImageFromFileICM(PWideChar(WideString(FileName)), SrcImage); if GetEncoderClsid('image/bmp', EncoderID) > -1 then if GdipSaveImageToStream(SrcImage, (Adapt as IStream), @EncoderID, nil) = Ok then begin Mem.Position := 0; Sender.LoadDataFromStream(Mem); end; finally if SrcImage <> nil then GdipDisposeImage(SrcImage); Adapt := nil; Mem.Free; end; end;