پرونده:CRT image creation animation.gif
CRT_image_creation_animation.gif (۵۴۶ × ۵۳۲ پیکسل، اندازهٔ پرونده: ۶٫۶۱ مگابایت، نوع MIME پرونده: image/gif، چرخشدار، ۱۹۲ قاب، ۳٫۸ ثانیه)
این پرونده در ویکیانبار موجود است. محتویات صفحهٔ توصیف آن در زیر نمایش داده میشود. |
خلاصه
توضیحCRT image creation animation.gif |
Deutsch: Animation des Bildaufbaus bei einer Kathodenstrahlröhre mit Interlacing-Verfahren.
English: Animation of the image construction for a cathode ray tube with interlacing method. |
تاریخ | |
منبع | اثر شخصی |
پدیدآور | Laserlicht |
Due a bug only even x and y values possible! |
Create Gif with ImageMagick: convert -delay 2 video.tiff -repage 546x532+-18+0 -set dispose background -coalesce -layers Optimize video.gif |
Imagick only support max 200 frames without bug. 🤨 The image used for this file was 16px x 12px = 192 Frames |
Code
#Path to Cairo Lib
import os
os.environ["PATH"] = r"D:\Programme\msys64\mingw64\bin" + os.pathsep + os.environ["PATH"]
#Imports
import drawSvg as draw
from PIL import Image
import numpy as np
import webbrowser
#Global Settings
in_img = "img3.jpg"
intensity_multiplicator = 0.990
#Image
im = Image.open(in_img)
pix = np.array(im)
pix = np.transpose(pix, (1, 0, 2))
intensity = np.arange(pix.shape[0] * pix.shape[1], dtype=np.float64).reshape(pix.shape[0], pix.shape[1])
intensity[:] = 0.0
def render(f):
global im, intensity
#Settings / Objects
size = (600, 600)
d = draw.Drawing(size[0], size[1], origin=(0, 0), displayInline=False)
d.append(draw.Rectangle(0, 0, size[0], size[1], fill="#ffffff", fill_opacity=1.0))
#Draw
draw_area = (50, 50 + 100, (280/3) * 4, 280)
gap = (draw_area[2] / pix.shape[0], draw_area[3] / pix.shape[1])
# Antenna
gradient = draw.LinearGradient(draw_area[0], draw_area[1], draw_area[0] + draw_area[2], draw_area[1] + draw_area[3])
gradient.addStop(0, '#aaaaaa', 1)
gradient.addStop(1, '#eeeeee', 1)
gradient = '#cccccc' #overwrite gradient -> disable, because better for gif
p = draw.Path(stroke_width=2, stroke="#000000", fill=gradient, fill_opacity=1.0)
p.M(280, 460)
p.A(10, 10, 0, 0, 1, 300, 460)
d.append(p)
d.append(draw.Line(290, 470, 290 + 90, 470 + 90, stroke='black', stroke_width=2, fill='none'))
d.append(draw.Circle(290 + 90, 470 + 90, 7, fill='black', stroke_width=2, stroke='black'))
d.append(draw.Line(290, 470, 290 - 120, 470 + 120, stroke='black', stroke_width=2, fill='none'))
d.append(draw.Circle(290 - 120, 470 + 120, 7, fill='black', stroke_width=2, stroke='black'))
# Foot
p = draw.Path(stroke_width=2, stroke="#000000", fill=gradient, fill_opacity=1.0)
p.M(290+100, 120)
p.L(290+100+50, 120-50)
p.L(290+100+20, 120)
d.append(p)
p = draw.Path(stroke_width=2, stroke="#000000", fill=gradient, fill_opacity=1.0)
p.M(290-100, 120)
p.L(290-100-50, 120-50)
p.L(290-100-20, 120)
d.append(p)
# TV housing
d.append(draw.Rectangle(20, 20 + 100, 540, 340, rx=50, ry=50, fill=gradient, fill_opacity=1.0, stroke="#000000", stroke_width=2))
# Blackscreen
d.append(draw.Rectangle(50, 50 + 100, (280/3)*4, 280, rx=10, ry=10, fill="#000000"))
# Display
while f >= pix.shape[0] * pix.shape[1]: f -= pix.shape[0] * pix.shape[1]
radius = min(gap[0], gap[1]) / 2
intensity[:] *= intensity_multiplicator
for x in range(pix.shape[0]):
for y in range(pix.shape[1]):
point_pos = (f % pix.shape[0], f // pix.shape[0])
if point_pos[1] < pix.shape[1] / 2:
y_pos = (point_pos[1] * 2 == y)
else:
y_pos = (((point_pos[1] - pix.shape[1] / 2) * 2) + 1 == y)
if point_pos[0] == x and y_pos:
color = "#ffffff"
intensity[x, y] = 1.0
else:
color = tuple((pix[x][y] * intensity[x][y]).astype(int))
color = '#%02x%02x%02x' % color
d.append(draw.Circle(draw_area[0] + x * gap[0] + radius, draw_area[1] + draw_area[3] - y * gap[1] - radius, radius, fill=color))
# TV
# Screen (only Border)
d.append(draw.Rectangle(50 - 5, 50 + 100 - 5, (280/3)*4 + 10, 280 + 10, rx=15, ry=15, fill="#000000", fill_opacity=0.0, stroke=gradient, stroke_width=10)) #hacky overdraw overlapping circles -> masks don't work...
d.append(draw.Rectangle(50, 50 + 100, (280/3)*4, 280, rx=10, ry=10, fill="#000000", fill_opacity=0.0, stroke="#000000", stroke_width=2))
# Controls
d.append(draw.Rectangle(75 + (280/3)*4, 130 + 100, 455 - (280/3)*4, 200, rx=10, ry=10, fill="#000000", fill_opacity=0.0, stroke="#000000", stroke_width=2))
d.append(draw.Circle(75 + (280/3)*4 + 40, 130 + 100 + 160, 25, fill='#888888', stroke_width=2, stroke='black'))
d.append(draw.Circle(75 + (280/3)*4 + 40, 130 + 100 + 90, 25, fill='#888888', stroke_width=2, stroke='black'))
d.append(draw.Rectangle(75 + (280/3)*4 + 40, 130 + 100 + 160 - 5, 20, 10, rx=10, ry=10, fill="#888888", fill_opacity=0.0, stroke="#000000", stroke_width=2))
d.append(draw.Rectangle(75 + (280/3)*4 + 40 - 5, 130 + 100 + 90, 10, 20, rx=10, ry=10, fill="#888888", fill_opacity=0.0, stroke="#000000", stroke_width=2))
# Speaker
for i in range(6):
p = draw.Path(stroke_width=2, stroke="#000000", fill='black', fill_opacity=0.0)
p.M(75 + (280/3)*4, 130 + 100 - 20 - 10 * i)
p.H(75 + (280/3)*4 + 80)
d.append(p)
#Output
d.setRenderSize(size[0], size[1])
return d
#Prefill Intensity Values
for i in range(pix.shape[0] * pix.shape[1]):
render(i)
#Render to Images
with draw.animate_video("video.tiff", render) as anim:
for i in range(pix.shape[0] * pix.shape[1]):
anim.draw_frame(i)
#Render to SVG/PNG
#d = render(0)
#d.saveSvg("a.svg")
#d.savePng("a.png")
#View
webbrowser.open('file://' + os.path.realpath("video.tiff"))
input()
اجازهنامه
Image:
- شما اجازه دارید:
- برای به اشتراک گذاشتن – برای کپی، توزیع و انتقال اثر
- تلفیق کردن – برای انطباق اثر
- تحت شرایط زیر:
- انتساب – شما باید اعتبار مربوطه را به دست آورید، پیوندی به مجوز ارائه دهید و نشان دهید که آیا تغییرات ایجاد شدهاند یا خیر. شما ممکن است این کار را به هر روش منطقی انجام دهید، اما نه به هر شیوهای که پیشنهاد میکند که مجوزدهنده از شما یا استفادهتان حمایت کند.
- انتشار مشابه – اگر این اثر را تلفیق یا تبدیل میکنید، یا بر پایه آن اثری دیگر خلق میکنید، میبایست مشارکتهای خود را تحت مجوز یکسان یا مشابه با ا اصل آن توزیع کنید.
Source:
این پرونده تحت Expat License مجوزگذاریشدهاست که گاهی به عنوان مجوز امایتی شناخته میشود:
حق تألیف در © Laserlicht گواهی میشود که هر فردی میتواند نسخهای از این نرمافزار و متنهای همراهش به صورت مجانی بدون هیچ گونه محدودیت برای استفاده، کپی، ویرایش، درونریزی، انتشار، توسعه، تولید تحت مجوز زیر مجموعه یا فروش نرمافزار داشته باشد و همچنین دادن اجازه به اشخاص تولید کننده نرمافزار برای قید کردن شروط زیر: این برچسب و اجازهنامه باید در تمام نسخههای بعدی نرمافزار باشد. نرمافزار به همین صورت که هست ارائه میگردد و هیچ گونه گارانتی یا تعویض مفهومی یا ظاهری ندارد و شامل قوانین تجاری نمیشود و مناسب موارد خاصی هست و موارد دیگر را پشتیبانی نمیکند. در هیچ یک از موارد درون یا مرتبط با نرمافزار ، توسعهدهنده و استفاده کننده، مسئول خرابکاری یا هر قصدی دیگری نیستند. برای بارگذارندهها: اجازهنامه امایتی موارد مختلفی را در بر میگیرد و ممکن است شما جزئیات دقیقتری را بخواهید. برای دیدن جزئیات بیشتر {{MIT}} را کلیک کنید.
http://opensource.org/licenses/mit-license.phpMITMIT licensetruetrueLaserlicht |
این نگاره با توجه به رهنمودهای نگاره باکیفیت ارزیابیشده و نگارهٔ باکیفیت در نظر گرفته شدهاست.
العربية ∙ جازايرية ∙ беларуская ∙ беларуская (тарашкевіца) ∙ български ∙ বাংলা ∙ català ∙ čeština ∙ Cymraeg ∙ Deutsch ∙ Schweizer Hochdeutsch ∙ Zazaki ∙ Ελληνικά ∙ English ∙ Esperanto ∙ español ∙ eesti ∙ euskara ∙ فارسی ∙ suomi ∙ français ∙ galego ∙ עברית ∙ हिन्दी ∙ hrvatski ∙ magyar ∙ հայերեն ∙ Bahasa Indonesia ∙ italiano ∙ 日本語 ∙ Jawa ∙ ქართული ∙ 한국어 ∙ kurdî ∙ Lëtzebuergesch ∙ lietuvių ∙ македонски ∙ മലയാളം ∙ मराठी ∙ Bahasa Melayu ∙ Nederlands ∙ Norfuk / Pitkern ∙ polski ∙ português ∙ português do Brasil ∙ rumantsch ∙ română ∙ русский ∙ sicilianu ∙ slovenčina ∙ slovenščina ∙ shqip ∙ српски / srpski ∙ svenska ∙ தமிழ் ∙ తెలుగు ∙ ไทย ∙ Tagalog ∙ Türkçe ∙ toki pona ∙ українська ∙ vèneto ∙ Tiếng Việt ∙ 中文 ∙ 中文(简体) ∙ 中文(繁體) ∙ +/− |
آیتمهایی که در این پرونده نمایش داده شدهاند
توصیفها
این خصوصیت مقداری دارد اما نامشخص است.
source of file انگلیسی
original creation by uploader انگلیسی
Commons quality assessment انگلیسی
Wikimedia Commons quality image انگلیسی
۷ نوامبر 2021
image/gif
checksum انگلیسی
8d26037a7a752fe6aef5f771c3387417437262e1
۶٬۹۳۰٬۵۲۱ بایت
۳٫۸۴۰۰۰۰۰۰۰۰۰۰۰۰۳ ثانیه
۵۳۲ پیکسل
۵۴۶ پیکسل
تاریخچهٔ پرونده
روی تاریخ/زمانها کلیک کنید تا نسخهٔ مربوط به آن هنگام را ببینید.
تاریخ/زمان | بندانگشتی | ابعاد | کاربر | توضیح | |
---|---|---|---|---|---|
کنونی | ۷ نوامبر ۲۰۲۱، ساعت ۱۸:۴۲ | ۵۴۶ در ۵۳۲ (۶٫۶۱ مگابایت) | Laserlicht | comment edit | |
۷ نوامبر ۲۰۲۱، ساعت ۱۷:۴۱ | ۵۴۶ در ۵۳۲ (۶٫۶۱ مگابایت) | Laserlicht | white BG | ||
۷ نوامبر ۲۰۲۱، ساعت ۱۷:۳۹ | ۵۴۶ در ۵۳۲ (۶٫۹۵ مگابایت) | Laserlicht | Uploaded own work with UploadWizard |
کاربرد پرونده
صفحهٔ زیر از این تصویر استفاده میکند:
کاربرد سراسری پرونده
ویکیهای دیگر زیر از این پرونده استفاده میکنند:
- کاربرد در de.wikipedia.org
- کاربرد در en.wikipedia.org
- کاربرد در en.wikibooks.org
- کاربرد در fr.wikibooks.org
- کاربرد در tr.wikipedia.org
فراداده
این پرونده حاوی اطلاعات اضافهایاست که احتمالاً دوربین دیجیتال یا پویشگری که در ایجاد یا دیجیتالیکردن آن به کار رفته آن را افزوده است. اگر پرونده از وضعیت ابتداییاش تغییر داده شده باشد آنگاه ممکن است شرح و تفصیلات موجود اطلاعات تصویر را تماماً بازتاب ندهد.
توضیحات پرونده GIF | created by Michael H. (aka "Laserlicht" on Wikimedia Commons) |
---|