Reemplazo de pantalla de teléfono
Foto: $ARGUMENTS. Si no hay ninguna, pide una o encuentra alguna con find_photos.py.
Toda la parte frontal del teléfono es reemplazada mediante código: la pantalla, el marco negro y la muesca o isla. Fuera del vidrio, la foto no se modifica.
Para una plantilla que ya existe, este skill no es necesario: python3 swap.py <imagen>.
Nueva plantilla
Toma: una foto real de un iPhone, con la pantalla hacia la cámara. Omitir: Android, una inclinación superior a 25°, un lado 1.2 veces mayor que el otro (el recorte las rechaza). Omitir fotos con un dedo o manga sobre la pantalla: sin marco gris, se pintaría encima. Todo el vidrio es nuestro, incluso un reflejo. Solo la piel que entra desde fuera permanece de la foto.
P=<nombre, 8 caracteres, único>; D=plantillas/esquinas
mkdir -p out
# 1. Mira la foto y lee las esquinas aproximadas de la pantalla: SI, SD, II, ID
python3 tools/slide_crop.py --q '<esquinas>' <foto.jpg> plantillas/crop/$P.jpg # imprime las esquinas en el recorte
# 2. Los bordes rectos exactos. Si `live` es bajo: R=34
python3 tools/slide_lines.py $P '<esquinas en el recorte>' out/l.jpg # esquinas refinadas al final de la salida
# 3. El contorno: perspectiva, curvatura de lente, radio, contorno de vidrio
python3 tools/slide_trace.py $P '<esquinas>' out/t.jpg $D/$P.json
# 4. Prueba de lo que el ajuste no vio. Siempre mirar la imagen
python3 tools/slide_proof.py $P $D/$P.json out/$P-prueba.jpg
# 5. La pose, usada solo por el reflejo
python3 tools/slide_sheet.py $P $D/$P.pose.json init
# 6. Medir la muesca o isla, los iconos de estado, los negros
python3 tools/slide_check.py $P measure
# Receta $D/$P.recipe.json: copiar a841f108 (muesca) o f5dad639 (isla), luego establecer frame=$P, pose, esquinas y las opciones medidas
# 7. Hora e iconos en la ubicación de este teléfono
python3 tools/slide_status.py $P init <línea de measure>; python3 tools/slide_status.py $P build
# 8. Construir y prueba roja
python3 tools/slide_check.py $P build
# 9. Mapa térmico de fugas
python3 tools/slide_check.py $P leak
# 10. Ancho del marco
python3 tools/slide_check.py $P frame
Después de eso, es una plantilla: python3 swap.py <imagen> -t $P.
Revisa antes de confiar
out/$P-split.jpg: foto, rojo, resultado. El rojo encaja, el marco termina en la carcasa, todo desde el cuerpo hacia adentro es nuestro.out/$P-leak.jpg: el marco sobre una pantalla negra, brillo en escala logarítmica. Cualquier cosa iluminada proviene de la foto: una línea alrededor de un recorte, motas, reflejos. Solo un altavoz y lo que realmente está al frente puede mostrarse.out/$P-top.jpg: el contorno verde del recorte sobre la foto, los iconos en su lugar.out/$P-zoom.jpg: esquinas y marco, grandes, junto a la foto.- La plantilla con una imagen blanca mediante
swap.py: una página oscura oculta esquinas y bordes malos. out/$P-frame.jpg: las cuatro esquinas en una pantalla blanca. Una plantilla no está terminada hasta que pase la verificación de marco a continuación.
Verificación de marco
El marco negro es hardware, un ancho uniforme alrededor. slide_check.py $P frame construye sobre una pantalla blanca, la endereza y mide el negro en el centro de cada lado, en píxeles de captura de pantalla (591 de ancho). Imprime ours y photo por lado, la dispersión y un veredicto: hasta 4 px es OK, más es FIX.
El límite de 4 px se eligió de estos teléfonos: una dispersión de 7.5 px era claramente visible, y 4 px no lo era.
Si dice FIX en una plantilla nueva:
- Ejecuta
slide_trace.pyde nuevo: lee el negro visible y da a cada lado la mediana (la líneaframe:). - Reconstruye, luego ejecuta
framede nuevo. - Sigue
FIX: comparaoursconphoto. Si coinciden, un reflejo, carcasa o mano oculta el marco en ese lado de la foto. Si no coinciden, el contorno está desviado: mira-frame.jpgy-split.jpg. - Si no converge, no des la plantilla por terminada. Di qué lado está desviado y por cuántos px.
Revisa también
-frame.jpgvisualmente: la parte superior y los lados deben coincidir. Las plantillas enviadas:f38fe44a2.2,791866583.2 y895d3ee83.8 pasan.f5dad6395.8,a841f1086.2 y14278a0b8.5 no pasan: sus marcos se mantuvieron tal como se construyeron inicialmente.
Configuración
- Negro:
floor, para que el marco y el recorte coincidan con la foto. Comienza en.003y bájalo si la foto es más oscura.buildimprime ambos. - Muesca: valores de
measure. Ajustacrsegún el contorno verde;measurelo lee bajo. - Altavoz sobre una muesca:
grille=45. Si aparece una línea fina de la página anterior alrededor de la muesca:gband=1. - Isla: su centro es hardware, 295.5 de 591. Si
measuredice más de 1 px de desviación, algo brillante se comió un borde: toma el borde limpio y refléjalo a través del centro. En una pantalla de bloqueo, tomaxde un teléfono con isla (hora 111, iconos 479) eydemeasure. - Altavoz sobre una isla: si está dentro del contorno de vidrio,
grille=45recupera solo su relieve. - Manga sobre el vidrio:
sleeve=1, solo con un marco gris real entemplates/grey/(f38fe44a). - Oscuro sobre oscuro:
slide_trace.pycambia automáticamente cuando menos de 400 de 720 puntos se elevan. Revisa-splitcon especial cuidado.
Cómo funciona
Un teléfono es rígido, por lo que la pantalla es un rectángulo con esquinas redondeadas continuas de iOS, visto a través de una perspectiva y una curvatura radial de lente. Los bordes se encuentran en el brillo logarítmico, por lo que oscuro sobre oscuro funciona, y se colocan en el punto medio en luz lineal. La imagen se dibuja sobre la foto enderezada y luego se curva de nuevo con el vidrio.
Trampas conocidas
- Juzgar solo por una página oscura.
- Ajustar de una manera y verificar de otra: la verificación es el ajuste, la prueba es lo que se omitió.
- Líneas rectas directamente sobre la foto: está curvada. Solo existen sobre la enderezada.
- Buscar el borde de la carcasa desde fuera hacia dentro en una pantalla brillante: un pliegue de tela parece una carcasa. Ve desde la pantalla hacia fuera.