Jak Blockbench używa interfejsu EyeDropper API w edytorze modeli 3D, aby umożliwić użytkownikom wybieranie kolorów z dowolnego miejsca

Interfejs EyeDropper API umożliwia utworzenie narzędzia zakraplacza, które umożliwia użytkownikom próbkowanie kolorów z ekranów, również poza oknem przeglądarki. Dowiedz się, jak edytor modeli 3D Blockbench używa tego interfejsu API w swojej bazie kodu.

Jannis Petersen
Jannis Petersen

Wstęp

(Ten artykuł jest również dostępny w formie filmu).

Blockbench to bezpłatny, nowoczesny edytor modeli do tworzenia modeli o małej liczbie wielofazowej z teksturami w stylu pixel art. Jeśli zdarzyło Ci się już grać w Minecrafta, prawdopodobnie znasz zasoby utworzone w Blockbench, np. kozę, która została dodana do gry Minecraft w ramach aktualizacji dotyczącej jaskini i klifów (część 1). Kod Blockbench, na podstawie którego licencjobiorcy spółek spółki spółki LLLC jest dostępny w serwisie GitHub, jest dostępny na licencji open source.

Owca z Minecrafta zaprojektowana z użyciem Blockbench.

Aby wypróbować Blockbench, uruchom aplikację na stronie web.blockbench.net. Możesz ją zainstalować na komputerze i uruchomić w osobnym oknie. Jeśli nie masz doświadczenia w modelowaniu 3D, możesz zacząć od jednego z wielu przykładowych plików .bbmodel typu open source, które można znaleźć za pomocą wyszukiwarki kodu na GitHubie. Wypróbuj na przykład model pociągu widoczny na zrzucie ekranu poniżej.

Edytowanie modelu trenowania w Blockbench.

Interfejs EyeDropper API

Blockbench oferuje między innymi funkcję malowania, więc jeśli chcesz tagować pociąg, teraz możesz to zrobić. Nie rób tego w rzeczywistości. Jak widać, do tagowania użyję jasnopomarańczowego koloru.

Plakietka „Tom był tutaj” i znak pokoju napisany na modelu pociągu.

To jest pomarańcza wyodrębniona bezpośrednio z tapety macOS Ventura przy użyciu interfejsu EyeDropper API. Jak widać na poniższym zrzucie ekranu, zakraplacz (pomarańczowe kółko po lewej stronie okna aplikacji) może dostać się na zewnątrz aplikacji bezpośrednio do pulpitu lub dowolnej innej otwartej aplikacji.

Widoczny selektor kolorów wysuwający się z aplikacji Blockbench i wybierający kolor z obrazu tła pulpitu.

Ponieważ Blockbench jest oprogramowaniem typu open source, możesz sprawdzić, jak programiści implementują ten interfejs API. Ten kod znajduje się w języku JannisX11/blockbench/blob/master/js/texturing/color.js. Blockbench jest też dostępny jako aplikacja Electron.js. Jak widać z komentarza, w przypadku problemu w Electron selektor kolorów nie może wybrać koloru poza oknem. Problem ten nie jest związany z internetowym interfejsem API, który widać w zaznaczonej części fragmentu kodu. Korzystanie z interfejsu API jest proste. Utwórz instancję nowej instancji EyeDropper i wywołaj jej metodę open(). Ta metoda działa za pomocą ciągu sRGBHex reprezentującego wybrany kolor w szesnastkowym formacie sRGB.

new Action("pick_screen_color", {
  icon: "colorize",
  category: "color",
  condition: () => typeof EyeDropper == "function",
  click: async function () {
    if (Blockbench.platform == "win32") {
      // workaround for https://github.com/electron/electron/issues/27980
      ipcRenderer.send("request-color-picker", {
        sync: settings.sync_color.value,
      });
    } else if (typeof EyeDropper == "function") {
      let dropper = new EyeDropper();
      let { sRGBHex } = await dropper.open();
      ColorPanel.set(sRGBHex);
    }
  },
});

Podsumowanie

Selektory kolorów to niewielki, ale ważny element oprogramowania kreatywnego, takiego jak Blockbench. Najczęściej żądany kolor nie jest częścią okna aplikacji, lecz da się go znaleźć gdzieś na zewnątrz, a nawet na innym ekranie. Selektor kolorów, który w takich przypadkach nie pozwala na wybieranie kolorów, może okazać się niemal bezużyteczny. Interfejs EyeDropper API został stworzony właśnie na potrzeby takich przypadków użycia i od wdrożenia w listopadzie 2021 roku, który świetnie sprawdza się w przypadku Blockbench. Jeśli grasz w Blockbench, czujesz radość z wyboru kolorów.