कर्सर को किसी निश्चित स्थिति में ले जाने के लिए बस Console.SetCursorPosition
का उपयोग करें, फिर Console.Write
एक वर्ण। प्रत्येक फ्रेम से पहले आपको पिछले स्थान को रिक्त स्थान के साथ ओवरराइट करके हटा देना होगा। उसके बारे में यहां छोटे उदाहरण मैं सिर्फ बनाया:
class Program
{
static void Main(string[] args)
{
char[] chars = new char[] { '.', '-', '+', '^', '°', '*' };
for (int i = 0; ; i++)
{
if (i != 0)
{
// Delete the previous char by setting it to a space
Console.SetCursorPosition(6 - (i-1) % 6 - 1, Console.CursorTop);
Console.Write(" ");
}
// Write the new char
Console.SetCursorPosition(6 - i % 6 - 1, Console.CursorTop);
Console.Write(chars[i % 6]);
System.Threading.Thread.Sleep(100);
}
}
}
आप उदाहरण के लिए, एक एनिमेटेड GIF ले सभी एकल फ्रेम निकाल सकते/यह से छवियों (देखें कि here कैसे करना है), एक ASCII परिवर्तन (कैसे करना है जो लागू हों उदाहरण के लिए here वर्णित है) और इन फ्रेम को उपरोक्त कोड उदाहरण की तरह फ्रेम द्वारा प्रिंट करें।
अद्यतन
बस मस्ती के लिए, मैं क्या मैं सिर्फ वर्णित लागू किया। कुछ (बड़े नहीं) एनिमेटेड gif के पथ के साथ बस @"C:\some_animated_gif.gif"
को प्रतिस्थापित करने का प्रयास करें। उदाहरण के लिए here से AJAX लोडर gif लें।
class Program
{
static void Main(string[] args)
{
Image image = Image.FromFile(@"C:\some_animated_gif.gif");
FrameDimension dimension = new FrameDimension(
image.FrameDimensionsList[0]);
int frameCount = image.GetFrameCount(dimension);
StringBuilder sb;
// Remember cursor position
int left = Console.WindowLeft, top = Console.WindowTop;
char[] chars = { '#', '#', '@', '%', '=', '+',
'*', ':', '-', '.', ' ' };
for (int i = 0; ; i = (i + 1) % frameCount)
{
sb = new StringBuilder();
image.SelectActiveFrame(dimension, i);
for (int h = 0; h < image.Height; h++)
{
for (int w = 0; w < image.Width; w++)
{
Color cl = ((Bitmap)image).GetPixel(w, h);
int gray = (cl.R + cl.G + cl.B)/3;
int index = (gray * (chars.Length - 1))/255;
sb.Append(chars[index]);
}
sb.Append('\n');
}
Console.SetCursorPosition(left, top);
Console.Write(sb.ToString());
System.Threading.Thread.Sleep(100);
}
}
}
स्रोत
2010-04-27 22:20:39
बस मेरे जवाब अपडेट किया गया। मज़े करें :) –
हम्म, यह झिलमिलाहट की बहुत परिभाषा है, एक भी "पिक्सेल" एक फ्रेम से अगले तक समान नहीं है। इसे तेजी से ले जाएं। –