掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
色フィルター? (ID:23128)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> junkiの方法なんですけど、PingImageが落とせずに試すことが出来ません。 今回の問題には、Png 画像を使う事は特に本質とは関係ありません。 jpeg 画像を使った例を示します。これなら、Delphi だけでできます。 uses Jpeg; function JAlphaBlend(dst: TCanvas; dstX, dstY: integer; src: TBitmap; alpha: single):Boolean; var bf: TBlendFunction; begin bf.BlendOp := AC_SRC_OVER; bf.BlendFlags := 0; bf.SourceConstantAlpha := Round(alpha*255/100); bf.AlphaFormat := 0; result := Windows.AlphaBlend(dst.Handle, dstX, dstY, src.Width, src.Height,src.Canvas.Handle, 0, 0, src.Width, src.Height, bf); end; procedure TForm1.Button1Click(Sender: TObject); var bmp, orange: TBitmap; jpg: TJpegImage; begin jpg := TJpegImage.Create; bmp := TBitmap.Create; orange := TBitmap.Create; try jpg.LoadFromFile('c:\test.jpg'); // 適当な jpg 画像。 bmp.Assign(jpg); // bmp に写し取る orange.Width := bmp.Width; orange.Height := bmp.Height; orange.PixelFormat := pf24bit; orange.Canvas.Brush.Color := RGB(255, 111, 15); //適当なオレンジ色 orange.Canvas.Pen.Color := RGB(255, 111, 15); orange.Canvas.FillRect(Rect(0, 0, orange.Width, orange.Height)); Canvas.Draw(5, 5, bmp); JAlphaBlend(bmp.Canvas, 0, 0, orange, 30); // 30%オレンジ色を重ねる Canvas.Draw(5, bmp.Height + 10, bmp); finally jpg.Free; bmp.Free; orange.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.