text: 
  # include <Siv3D.hpp> // OpenSiv3D v0.4.3
  
  void Main()
  {
      Texture texture;
  
      double scale = 1.0;
  
      Array<Rect> detectedFaces;
  
      Platform::Web::System::SetMainLoop([&]
      {
          System::Update();
          
          // ファイルがドロップされた
          if (DragDrop::HasNewFilePaths())
          {
              // ファイルを画像として読み込めた
              if (const Image image{ DragDrop::GetDroppedFilePaths().front().path })
              {
                  // イラストの顔を検出
                  detectedFaces = image.detectObjects(HaarCascade::AnimeFace);
  
                  // 画面のサイズに合うように画像を拡大縮小
                  texture = Texture(image.fitted(Scene::Size()));
  
                  // 画像の拡大縮小率
                  scale = static_cast<double>(texture.width()) / image.width();
              }
          }
  
          if (texture)
          {
              texture.draw(0, 0);
  
              // 顔の領域の座標を表示に合わせる
              Transformer2D t(Mat3x2::Scale(scale));
  
              for (const auto& detectedFace : detectedFaces)
              {
                  detectedFace.drawFrame(4 / scale, ColorF(1.0, 0.0, 0.0, Periodic::Sine0_1(1.5s)));
              }
          }
  
      });
  }
  