Law Napisano Grudzień 3, 2018 Autor Zgłoś Udostępnij Napisano Grudzień 3, 2018 Spieszę się więc krótką. Mam zmienną typu HBITMAP i jak powiększyć ją? Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Jarema Napisano Grudzień 3, 2018 Zgłoś Udostępnij Napisano Grudzień 3, 2018 Musisz pobrać najpierw jej rozmiar. Potem stworzyć drugą bitmapkę o rozmiarach większych i kopiować odpowiednią ilość linii, algorytm gotowy można znaleźć na pierwszej lepszej stronce jak wpiszesz w wyszukiwarce "skalowanie bitmap". To będzie takie brzydkie powiększanie polecam interpolację, coś o tym wiem z Noname Project . Zakładam że wiesz jak wykonać powyższe czynności, jeśli będziesz potrzebował gotowego przykładu to napisz, ale to dopiero jutro bo muszę się wyspać . Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Law Napisano Grudzień 3, 2018 Autor Zgłoś Udostępnij Napisano Grudzień 3, 2018 Tu trzeba użyć chyba StretchBlt, ale próbowałem różnych kombinacji i nic. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Grudzień 4, 2018 Zgłoś Udostępnij Napisano Grudzień 4, 2018 StretchBlt jest jednym z mozliwosci jezeli wykorzystujesz uchwyt. Jezeli chcesz dzialac bezposrednio na bitach rysunku to wykorzystaj: StretchDIBits Przyklad na StretchBlt (w delphi): Var mapa:HBITMAP; PS:TPaintStruct; DC:hDC; x,y:integer; //x,y - rozmiar jaki bedzie wyswietlany rzeczywiscie - czyli przeskalowany xo,yo: integer; //xo,yo - rozmiar oryginalny bitmapy ... WM_PAINT:begin beginPaint(Okno,PS); DC:=CreateCompatibleDC(PS.hDC); SelectObject(DC,mapa); StretchBlt(PS.hDC,0,0,x,y,DC,0,0,xo,yo,SRCCOPY); DeleteDC(DC): EndPaint(Okno,PS); end; Dodatkowo mozesz wykorzystac funkcje SetStretchBltMode, zktorej wykorzystujac odpowiednie stale mozesz sprawdzic z ktora najladniej wychodzi. Powyzsza metoda moze byc wykorzystana do bezposredniej zmiany rozmiaru mapy - przedtawilem to na przykladzie pokazania bezposredniego. Chociarz takie kombajny jak photoshop wykorzystuja wlasne algorytmy i wyglada to miejwiecej tak jak opisuje Nicon. Dodatkowo ten program ma wybor zmiany rozmiaru obrazka. Nie pamietam jak to dokladnie sie nazywa, ale chyba metoda sasiadujaca, dwuszescienna i dwuliniowa. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.