Przejdź do głównej zawartości

Inkscape - efekt zamglonego lustra

Spróbujmy zrobić efekt odbicia poniżej naszego projektu. Otwórzcie więc poprzedni projekt i zaczynamy :-). Odblokuj wszystkie 3 warstwy, które utworzyliśmy w poprzednim rozdziale. Dodaj warstę nadrzędną nad warstwą poświata. Nazwijmy ją lustro - tutaj będziemy dokonywać edycji. W głównym oknie Inkscape'a zaznaczcie cały nasz projekt (myszą, lub poprzez Ctrl+A, by zduplikować całość przy użyciu Ctrl+D. Żeby ułatwić sobie dalszą pracę zgrupujmy całość używając skrótu klawiszowego Ctrl+G. Postarajmy się naszą grupę przenieść na najwyższą warstwę - lustro, by mieć możliwość zablokowania niższych. By zrobić efekt odbicia musimy odbić nasz obiekt pionowo (dokonujemy tego przy użyciu klawisza V, co jest znacznie szybsze od użycia menu Obiekt -> Odbij pionowo).

Przesuńmy teraz nasz odbity obiekt poniżej oryginalnej edycji. W tym celu wybierzcie naszędzie selekcji (F1), przytrzymajcie klawisz Ctrl i po prostu przeciągnijcie duplikat używając myszki w dół tak, żeby pozostało miejsce na linię poziomą pomiędzy napisami. Klawisz Ctrl daje nam tutaj możliwość przemieszczania obiektu względem początkowo nadanej osi - poziomej lub pionowej. Daje nam to pewność, że obiekty będą wyrównane względem siebie.

Używając Krzywych Beizera (Shift+F6) rysujemy linię poziomą pomiędzy naszymi edycjami. W celu uzyskania 100% pewności, że nasza linia będzie równoległa w stosunku do naszych napisów ponownie przed rozpoczęciem rysowania przytrzymujemy klawisz Ctrl. Spróbuj ustawić linię tak, żeby zaczynała się i kończyła dokładnie tam, gdzie napis. Następnym krokiem będzie zmiana parametrów linii, którą wyedytowaliśmy. W zależności od wielkości napisu należy dopasować parametr grubości kontury (ja ustawiłem na 3). Wypełnienie zmieńmy na gradient koncentryczny tak, żeby z czarnego(od środka linii) przechodził w przezroczysty(na końcach).


Narysuj prostokąt tak, żeby zakryłnasz duplikat znajdujący się pod linią. Zmień parametry wypełnienia tegoż prostokątu na poniższe:

Efekt końcowy powienien prezentować się następująco:


Artykuł udostępniany na licencji CC-BY-SA-3.0

Komentarze

Popularne posty z tego bloga

WordPress -> SQL Injection poprzez plugin Webdorado SpiderCalendar

W zeszłym roku sprawdziłem jakość kodu oraz poprawność przetwarzania danych wejściowych przez plugin „Form Maker” przygotowany przez wydawcę Webdorado. Tym razem postanowiłem sprawdzić czy autor poprawił jakoś kodu swoich produktów. Należy tutaj nadmienić, że poza wersjami darmowymi opartymi na licencji GNU/GPLv2 oferuje on również wersję płatne z dodatkowymi szablonami. Tym razem postaram się opisać wszelkie przeszkody, które musiałem pokonać aby n apisać działającego exploita. Zacząłem zabawę tak, że program był dla mnie black-boxem, ale niestety skończyło się na przejrzeniu kodu. Zapraszam do lektury. Poniżej można zobaczyć jeden z widoków częściowych kalendarza, który domyślnie jest wywoływany z JavaScriptu jako XHR, można jednak go z powodzeniem otworzyć w przeglądarce jako widok główny: http://localhost:8888/wp/wp-admin/admin-ajax.php?action=spiderbigcalendar_month&theme_id=13&calendar=1&select=month,list,week,day,&date=2015-02&many_sp_calend...

WordPress Form Maker 1.6.5 - Stored XSS

W ostatnim czasie bawiłem się wtyczką do WordPressa o nazwie Form Maker (v1.6.5). Postanowiłem przejrzeć kod tej wtyczki i sprawdzić jego jakość oraz poziom zabezpieczenia danych przychodzących od użytkowników. Jak się okazuje poziom zabezpieczeń tego dodatku pozostawia wiele do życzenia (zresztą poziom jakości kodu źródłowego również). Wygenerowałem przy użyciu panelu zarządzania FormMaker'a formularz z jednym polem typu "select: oraz przyciski "submit" i "reset". Następnie dodałem widget do prawej kolumny bloga, efekt jest następujący:   W zasadzie pole to nie jest zabezpieczone w żaden sposób przed doklejeniem do wartości skryptu JS. Wartości te wpadają do tabelki wp_formmaker_submits do kolumny element_value. Użytkownik zarządzający (domyślnie administrator) może przeglądać w panelu WP statystyki utworzone na podstawie przesłanych przez użytkowników danych, oto przykład ( http://localhost/wordpress/wp-admin/admin.php?page=Form_maker_Submits ): ...

Przydatne skrypty w MS SQL Server dla platformy Azure

 Jak przygotować skrypt, który wyłączy "Constrainty" w MS SQL Azure:     SELECT 'ALTER TABLE [' + s.name + '].[' + o.name + '] NOCHECK CONSTRAINT ' + i.name AS a     FROM sys.foreign_keys i     INNER JOIN sys.objects o ON i.parent_object_id = o.OBJECT_ID     INNER JOIN sys.schemas s ON o.schema_id = s.schema_id Jak przygotować skrypt, który wycziści wszystkie tabele, po tym jak wyłączysz "Constrainty" w MS SQL Azure:     SELECT DISTINCT 'DELETE FROM  [' + t.name + '] ' AS a     FROM sys.tables t     WHERE t.name <> 'appusers' AND t.name <> 'flyway_schema_history'; Jak przygotować skrypt, który włączy "Constrainty" w MS SQL Azure:     SELECT 'ALTER TABLE [' + s.name + '].[' + o.name + '] CHECK CONSTRAINT ' + i.name AS a     FROM sys.foreign_keys i     INNER JOIN sys.objects o ON i.parent_object_id = o.OBJECT_ID  ...