Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Dzień dobry.

 

Prezentuję własnoręcznie zrobiony kod do pobieranie pikseli z pliku lub aktywnego okna.

Wraz z przykładem pokazującym, że działa :]

 

Pełny opis na bieżąco -> także przekopiować do SCiTE'a, odpalić i studiować :]

 

Kilka uwag:

  • Pobieranie całej tablicy jest błędem i tutaj tylko zamieszczone jako przykład. Należy tego unikać ze względu na niską efektywność funkcji GetPixel
    Jeśli koniecznie potrzebujesz kopiować całą bitmapę do bufora (tablicy), przerzuć się na C++ i skorzystaj z funkcji GetDIBits [lub bitmap.LockBits dla GDI+]
    Zamiast wczytywać bitmapę z pliku, możesz pobrać ją z aktywnego okna za pomocą funkcji _ScreenCapture_Capture()
    Jeśli chcesz pobrać bitmapę z nieaktywnego lub zminimalizowanego okna... poczekaj na następny odcinek tego tutoriala :]

 

 

 

 

To jest ukryta treść, proszę

 

 

Wykorzystane są następujące funkcje (poza tymi już zawartymi w UDFach):

 

 

Ta sygnatura jest pusta.

Opublikowano

Fajne :D Teraz czekamy na zminimalizowane okno! ^^ Już to rozgryzłeś, czy dalej się z tym bawisz? :] Tutorial trochę mało opisany, ale jeśli ktoś przeczyta tutka Maćka to powinien wszystko rozumieć ;) +++

Weteran
Opublikowano

Żle napisałeś rozszerzenia, każde oddzielić trzeba ' ; ' , twój kod nie działa, nie da się wybrać obrazka, drobna usterka ;d

1329036830-U154499.png
Opublikowano

Wszystkie funkcje są opisane.

 

Zakładam, że tut maćka przyswojony, przecież nie będę wszystkiego tłumaczył od zera.

 

Już to daawno rozgryzłem, tylko dzielę na kilka tutów :P

 

Dodano obsługę wszystkich plików.

Dodano opis DllCall.

Dodano DllClose.

Dodano linki z MSDN'a.

Ta sygnatura jest pusta.

  • 1 miesiąc temu...
Opublikowano

Umm... w jakim formacie jest zwracana wartość koloru piksela?

Chciałem zrobić coś jak konwerter kolorów, znaczy się kolory z zakresu pomarańczowego i żółtego są zamieniane na czerwony itd.

//Zakaz gifów-Dektored

  • 1 miesiąc temu...
Opublikowano

w RGB.

0xRRGGBB.

Pierwsze dwa bajty - kolor czerwony.

Następne dwa - kolor zielony.

Ostatatnie dwa - kolor niebieski.

 

Wystarczy dokonać operacji BitShift ( przesunięcie binarne ) i/lub BitAnd aby uzyskać to, co cię intersuje.

 

To jest ukryta treść, proszę

Ta sygnatura jest pusta.

Opublikowano

I kiedy wyjdzie Twoj tutek o klikaniu na zminimalizowanym oknie??

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

Nie wyjdzie, ale z innego powodu.

 

Klikanie na zminimalizowanym oknie nie jest możliwe, gdyż zminimalizowane okno nie istnieje ( zostaje zwolniony z pamięci obszar CLIENT okna, a zostaje tylko NONCLIENT - najczęściej sam pasek tytułu ).

Można natomiast klikać na oknach przykrytych innymi oknami "nieaktywnych" a także zupełnie niewidocznych "hidden", za pomocą funkcji SendMessage().

Do klikania na aktywne okna najlepiej sprawdza się SendInput().

 

Ale jeśli będę publikował cokolwiek, to w C++, a nie w AutoIcie.

Ta sygnatura jest pusta.

×
×
  • Dodaj nową pozycję...