امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
موج دادن عکس
نویسنده پیام
megatron آفلاین
عضو افتخاری
****

ارسال‌ها: 228
موضوع‌ها: 48
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 94
( 171 تشکر در 91 ارسال )
ارسال: #1
Question  موج دادن عکس
سلام.

من دنبال یک کد هستم که وقتی ماوس رفت روی عکس بصورت آب مواج درباید و قتی ماوس رو کنار بردیم به حالت اول برگرده.

ممنونم
۱۶-تير-۱۳۸۹, ۱۱:۵۰:۳۰
ارسال‌ها
پاسخ
aydin_key آفلاین
تازه وارد

ارسال‌ها: 18
موضوع‌ها: 2
تاریخ عضویت: شهریور ۱۳۸۹

تشکرها : 1
( 1 تشکر در 1 ارسال )
ارسال: #2
RE: موج دادن عکس
سلام عزیزم این کار که میگی از طریق کد نویس میشه که تو پیکسلها رو بخونی و روشون مانور کنی چون کارش زیاده میتونی از راهکارهای دیگری چون فراخواندن یک acript از اون استفاده کنی. حتی میتونی از توابعش هم استفاده کنی
۲۱-شهریور-۱۳۸۹, ۱۸:۰۹:۱۱
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: موج دادن عکس
یه کم دیره(پستو تازه دیدم)

میتونین از یونیت زیر استفاده کنین برای این افکت

کد:
unit blobs;

{ ------------------------------------------------------------------------- }
  interface
{ ------------------------------------------------------------------------- }

uses
  graphics, windows;

type
  PScanLine = ^TScanLine;
  TScanLine = array[0..65535] of byte;
  TBlobs = class
    private
      fFrame    : cardinal;
      fDrawing  : boolean;
      fBlobs    : array[0..5] of TPoint;
      fBitmap   : graphics.TBitmap;
      fXOfs     : integer;
      fYOfs     : integer;
      fXSeed    : integer;
      fYSeed    : integer;
      fSize     : integer;
      procedure SetupBlobs;
    public
      constructor Create( ABitmap : graphics.TBitmap; ASize : integer );
      procedure   Animate;
  end;

{ ------------------------------------------------------------------------- }
  implementation
{ ------------------------------------------------------------------------- }

constructor TBlobs.Create( ABitmap : graphics.TBitmap; ASize : integer );
begin
  fBitmap := ABitmap;
  fFrame := 0;
  fSize := ASize;
  fDrawing := FALSE;
  fXOfs := fBitmap.Width div 2;
  fYOfs := fBitmap.Height div 2;
  fXSeed := fXOfs - 10;
  fYSeed := fYOfs - 10;
  SetupBlobs;
end;

{ ------------------------------------------------------------------------- }
procedure TBlobs.SetupBlobs;
var
  i : integer;
  pal  : PLogPalette;
  hpal : HPALETTE;
begin
  fBitmap.PixelFormat := pf8bit;
  pal := nil;
  try
    GetMem( pal, sizeof( TLogPalette ) + sizeof(TPaletteEntry) * 255 );
    pal.palVersion := $300;
    pal.palNumEntries := 256;
    for i := 0 to 255 do
    begin
      pal.palPalEntry[i].peRed   := 255-i;
      pal.palPalEntry[i].peGreen := 255-i;
      pal.palPalEntry[i].peBlue  := 128-i;
      pal.palPalEntry[i].peFlags := PC_RESERVED;
    end;
    hpal := CreatePalette( pal^ );
    if hpal <> 0 then
      fBitmap.Palette := hpal;
  finally
    FreeMem( pal );
  end;
end;

{ ------------------------------------------------------------------------- }
procedure TBlobs.Animate;
var
  x, y, i : integer;
  Value, t : integer;
  Scan : PScanLine;
begin
  inc(fFrame);
  if fDrawing = FALSE then
  begin
    fBlobs[0].x := fXOfs + round( fXSeed * SIN( (2 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[0].y := fYOfs + round( fYSeed * SIN( (4 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[1].x := fXOfs + round( fXSeed * SIN( (6 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[1].y := fYOfs + round( fYSeed * SIN( (3 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[2].x := fXOfs + round( fXSeed * SIN( (7 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[2].y := fYOfs + round( fYSeed * SIN( (5 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[3].x := fXOfs + round( fXSeed * SIN( (3 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[3].y := fYOfs + round( fYSeed * SIN( (2 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[4].x := fXOfs + round( fXSeed * SIN( (4 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[4].y := fYOfs + round( fYSeed * SIN( (2 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[5].x := fXOfs + round( fXSeed * SIN( (2 * fFrame) *
                                  0.01745329252222 ) );
    fBlobs[5].y := fYOfs + round( fYSeed * SIN( (3 * fFrame) *
                                  0.01745329252222 ) );
    fDrawing := True;
    try
      For y := 0 to fBitmap.Height-1 do
      begin
        Scan := PScanLine( fBitmap.ScanLine[y] );
        for x := 0 to fBitmap.Width-1 do
        begin
          t := 0;
          For i := 0 to 5 do
          begin
            value := ( fBlobs[i].x - x ) * ( fBlobs[i].x - x );
            value := value + ( fBlobs[i].y - y ) * ( fBlobs[i].y - y );
            if value < 1 then
              value := 1;
            t := t + ( fSize div value );
          end;
          t := 255 - t;
          if t < 0 then
            t := 0;
          Scan[x] := t;
        end;
      end;
    except
    end;
    fDrawing := false;
  end;
end;


end.

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۱-شهریور-۱۳۸۹, ۱۹:۰۸:۰۴
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question تغییر دادن مسیر پوشه!؟؟؟؟ The.Ghost 9 6,830 ۲۱-فروردین-۱۳۹۲, ۱۰:۰۵:۳۰
آخرین ارسال: lord_viper
Question تغییر دادن مک آدرس کارت شبکه! The.Ghost 4 5,453 ۱۳-اسفند-۱۳۹۱, ۰۲:۳۶:۰۰
آخرین ارسال: The.Ghost
Question نسبت دادن به متغیر در sql mohamad5228 9 8,549 ۰۱-آبان-۱۳۸۷, ۲۲:۵۶:۲۹
آخرین ارسال: mohamad5228
  دادن پیغام بعد از جستجوی یک فایل IISecurity.C 1 2,317 ۱۳-اسفند-۱۳۸۶, ۲۱:۴۸:۱۴
آخرین ارسال: lord_viper

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS