In the olden days, cameras couldn't record glorious color, they only had grey.
And sometimes we want to take a photograph and turn it back into grey to give
it that old fashioned effect. Now, you might thing that all you'd have to do is
average the red, green, and blue values. But it's not quite that simple. As it
turns out, the receptors that we have in our eyes have different sensitivities
to colors. And what you actually have to do is take the red, green and blue
values weighted by these factors, and then turn them into grey. And then, when
you're done with that, you can set red to these value green and blue, because
they're all the same, that's what makes the color grey. And then, you're done.
But we have the same problem that you just saw. Red, green, blue are integers.
These weighing constants are fractional numbers. So, the whole expression is a
fractional number. And I want to put it back into an integer. So, the solution
is again, to inject a cast, put this expression in parentheses and put
parenthesis int before that. And then, you get it truncated down to the nearest
integer. Once again, I'd like you to try that, so you can see it with your own
eyes. Go ahead. Again, in the color class, implement a new method. In this
case, it's the turnGray method. Take the red, green and blue values, combine
them to a gray value using the equation that you just saw. Make sure that you
get an integer. And then, take that integer and put it back into red, green and
blue. Go ahead and do it now.
En los viejos tiempos, las cámaras no podían registrar el glorioso color, solo tenían gris.
Y a veces queremos tomar una fotografía y convertirla de nuevo a gris para darle
ese efecto antiguo. Ahora, es posible que pienses que todo lo que tendrías que hacer es
promediar los valores de rojo, verde y azul. Pero no es tan sencillo. Resulta
que los receptores que tenemos en nuestros ojos tienen diferentes sensibilidades
a los colores. Y lo que realmente tienes que hacer es tomar los valores rojo, verde y azul
pesados por estos factores y después volverlos grises. Y después, cuando
lo termines, puedes configurar el rojo para estos valores verde y azul porque
todos son lo mismo, eso es lo que hace el color gris. Y después, terminaste.
Pero tenemos el mismo problema que acabas de ver. Rojo, verde, azul son números enteros.
Estos constantes de peso son números fraccionarios. Así que la expresión completa es un
número fraccionario. Y quiero hacerlo un número entero. Así que la solución
es otra vez, inyectar un cast, poner esta expresión entre paréntesis y poner
paréntesis int antes de eso. Y después, te lo trunca al número entero más
cercano. Una vez más, me gustaría que lo intentaras para que puedas verlo con tus propios.
ojos. Adelante. Una vez más, en la clase Color, implementa un nuevo método. En este
caso, es el método turnGray (convertirGris) Toma los valores rojo, verde y azul, combínalos
a un valor de gris utilizando la ecuación que acabas de ver. Asegúrate
de obtener un número entero. Y después, toma ese número entero y ponlo de nuevo en rojo, verde y
azul. Continúa y hazlo ahora.
Autrefois, les caméras ne savaient pas
capturer les magnifiques couleurs,
c'était seulement du gris
et parfois nous voulons prendre
une photo et la transformer en gris
pour lui donner cet effet rétro.
Vous pourriez penser que
pour y arriver, il suffit
de faire la moyenne des valeurs
rouges, vertes et bleues.
Mais ce n'est pas si simple.
Il s'avère que les récepteurs
que nous avons dans nos yeux
ont des sensibilités différentes
aux couleurs.
Et ce que vous devez faire est de prendre
les valeurs rouges, vertes et bleues
pondérées par ces facteurs,
puis les transformer en gris.
Et puis, quand vous avez fini
avec cela, vous pouvez mettre
en rouge cette valeur verte et bleue,
car elles sont toutes pareilles,
c'est ce qui donne le gris
et vous avez fini.
Mais il y a le même problème
que vous venez de voir.
Rouge, vert, bleu sont des entiers.
Ces constantes de poids
sont des nombres fractionnaires.
Donc, l'expression entière est
un nombre fractionnaire
et je veux le remettre
dans un nombre entier.
Donc, la solution de nouveau
d'injecter une conversion,
mettre cette expression entre parenthèses
et mettre (int) avant cela.
Et puis, vous l'obtenez tronqué
à l'entier le plus proche.
Là encore, j'aimerais
que vous essayiez
afin que vous puissiez
voir par vous-même.
Allez-y. Dans la classe couleurs,
implémentez une nouvelle méthode.
Ici, c'est la méthode turnGray.
Prenez les valeurs rouge, vert et bleu,
combinez-les à
une valeur grise
en utilisant l'équation
que vous venez de voir.
Assurez-vous que vous
obtenez un nombre entier.
Et puis, prenez cet entier et
remettez-le en rouge, vert et bleu.
Allez-y et faites-le maintenant.
昔のカメラはカラー写真を撮れず
白黒写真だけでした
今ではカラー写真を逆に白黒にすることもあります
レトロ感を出すためです
方法としては
赤、緑、青の値の平均値を出せばいいのですが
そんなに簡単ではありません
目の受容体は
色に対して個別の感覚を持つからです
そこで実際のやり方として
赤、緑、青それぞれの値に
これらの係数で重みづけをして白黒に変えます
その時に赤、緑、青に同じ比率の値を設定します
輝度に色の違いはないので白黒になります
ここで先ほどと同じ問題があります
赤、緑、青はint型です
この重みをつけた定数は分数なので
全体の式は分数になります
それをint型に変換しなければなりません
その解決策はやはりキャストを入れ込むことです
括弧の中にこの式を入れて
その前に括弧をつけたintを置きます
そして一番近い整数に切り捨てます
自分の目で確かめてみましょう
それではColorクラスで
新しいメソッドを実行してください
この場合はturnGrayメソッドです
先ほどの方程式を使い
赤、緑、青の値を合わせて白黒の値に変更します
整数になっていることを確認して
その数字を使って赤、緑、青に戻します
さあやってみてください
예전에 카메라는 많은 색을 표현할 수가 없었습니다. 그저 회색만 표현했습니다.
그리고 가끔 사진을 찍을 때 사진의 효과를 회색으로 하기도 합니다. 왜냐하면
옛날 시대의 느낌을 주기 때문입니다. 이제 이 문제를 해결하려고 빨간, 파란, 그리고
초록의 평균을 구해서 해결할 수 있다고 생각할 수도 있습니다. 그러나 그렇게 간단한
작업이 아닙니다. 우리 눈의 수용기는 색을 보는 다른 감각이 있습니다.
사실 여러분이 해야 할 것은 빨간, 파란, 그리고 초록의 값들을
이러한 요인들로 변환하고 다시 회색으로 변환해야 합니다. 그런 후에
빨간, 파란, 그리고 초록을 변화해도 회색이 됩니다.
왜냐하면 모두 같기 때문입니다. 그런데 아까와 같은 문제가 있습니다.
빨간, 파란, 초록은 모두 정수입니다.
회색으로 만들어주는 요인인 비례상수들은 분수입니다. 그래서 전체적인
값은 분수여야 합니다. 그런 후에 다시 정수로 변환하고 싶습니다.
그래서 해결책은 정수형으로 강제 형변환을 하는
것입니다. 숫자 앞에 강제 형변환을 하게 되면
가장 가까운 정수로 결과를 줍니다. 또 다시 여러분께서
하길 바랍니다. color 클래스에 가서 새로운 메소드를 구현하세요.
이 메소드의 이름은 turnGray입니다. 빨간, 파란, 그리고 초록의 값들을 갖고
회색의 값으로 만드는 연산 식을 이용해서 만들면 됩니다. 결과가
정수여야 한다는 것을 잊으시면 안 됩니다. 그리고 그 정수를 빨간, 파란, 그리고
초록의 값에 다시 넣으시면 됩니다.
Ngày xưa, cameras không thể ghi lại những sắc màu rực rỡ, nó chỉ có màu xám.
Và thỉnh thoảng ta muốn chụp hình và chuyển nó thành hệ xám
để có hiệu ứng cổ điển. Bây giờ, có thể bạn nghĩ là bạn chỉ việc
lấy trung bình của màu red, green, và blue. Nhưng nó không đơn giản như thế.
Như nó chỉ ra, cơ quan cảm nhận trong mắt của chúng ta có độ nhạy khác nhau
với các màu sắc. Và điều bạn phải làm là lấy các giá trị red, green, blue
được giảm xuống bởi các hệ số này, để chuyển chúng thành màu xám. Và sau đó,
khi bạn xong, bạn có thể chỉnh red bằng màu này, green và blue nữa,
vì chúng cũng như nhau, nó sẽ tạo cho màu xám. Và sau đó, bạn đã xong.
Nhưng ta có cùng một vấn đề mà bạn đã được thấy. Red, green, blue là integer.
Mà các hằng số kia là phân số. Nên cả biểu thức
sẽ là phân số. Và tôi muốn chuyển nó thành integer. Nên, giải pháp là,
cho biểu thức này vào trong dấu ngoặc,
và cho (int) vào trước nó. Sau đó, bạn có 1 số được làm tròn xuống gần nhất
là số nguyên. Một lần nữa, tôi muốn bạn thử nó, để bạn có thể tự thấy bằng chính con mắt của bạn.
Tiếp tục, trong color class, thêm method nữa. Trong trường hợp này,
đó là turnGray method. Lấy các giá trị red, green, blue,
kết hợp chúng thành một màu xám sử dụng phương trình bạn vừa thấy. Hãy đảm bảo là
bạn có một số nguyên. Và sau đó, lấy số nguyên đó đưa lại vào red, green và blue.
Tiếp tục và làm đi nào.