掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLLでBmpのサイズとピクセル列を引き渡すには? (ID:8667)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
SaveToStreamした結果は、Bitmapのファイル構造そのままをメモリに配置しただけですので、VCでも使えるかもしれません。 ここに示すソースは、VCLであることを期待していません。 適切なメモリを渡せば、memにBitmapが配置されます。 nilで呼ぶとサイズを返すので、そのサイズ分確保してから再度呼べば取り込めます。 二度呼ぶので少し遅いのがネックですが。 function load(fn:PCHAR; mem: PCHAR): Integer;export;stdcall; var jpg:TJpegImage; bmp:TBitmap; ms: TMemoryStream; begin jpg:=TJpegImage.Create; bmp:=TBitmap.Create; ms := TMemoryStream.Create; Result := 0; try jpg.LoadFromFile(fn); bmp.Assign(jpg); bmp.SaveToStream(ms); ms.Seek(0, soFromBeginning); if Assigned(mem) then begin // nilならコピーしない CopyMemory(mem, ms.Memory, ms.Size); end; Result := ms.Size; finally ms.free; jpg.free; bmp.free; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.