Bagaimana untuk Menukar Imej kepada Seni ASCII Menggunakan C : Berasaskan Intensiti vs. Pemasangan Karakter?

DDD
Lepaskan: 2024-11-04 00:07:30
asal
365 orang telah melayarinya

How to Convert Images to ASCII Art Using C  : Intensity-Based vs. Character Fitting?

Imej kepada Penukaran Seni ASCII menggunakan C

Pendekatan ini menggunakan fon mono-jarak dan boleh mengendalikan imej skala kelabu.

Penukaran Berasaskan Keamatan Piksel/Kawasan (Teduhan)

  • Bahagikan imej kepada piksel atau kawasan segi empat tepat (titik).
  • Kira purata keamatan skala kelabu untuk setiap titik.
  • Gantikan setiap titik dengan watak yang mempunyai keamatan yang paling hampir.
  • Gunakan peta aksara untuk mengaitkan watak dengan intensiti.
  • Seni ASCII yang terhasil mengekalkan nisbah aspek dan taburan keamatan imej asal.

Pemasangan Aksara (Pendekatan Hibrid)

Kaedah ini cuba memadankan kawasan dalam imej dengan aksara bukan sahaja berdasarkan intensiti tetapi juga pada bentuk.

  • Bahagikan imej kepada kawasan segi empat tepat dengan nisbah bidang yang sama seperti fon sasaran.
  • Bahagikan setiap aksara dalam fon kepada zon (kiri, kanan, atas , bawah, tengah).
  • Kira keamatan untuk setiap zon dalam imej dan fon.
  • Cari watak yang paling sepadan dengan keamatan dan bentuk kawasan imej.
  • Hasilnya menghasilkan seni ASCII yang lebih menarik secara visual dengan fon yang lebih besar, mengekalkan butiran.

Kod Contoh untuk Pemasangan Aksara

<code class="c++">class intensity {
    char c;
    int il, ir, iu, id, ic;

    void compute(DWORD **p, int xs, int ys, int xx, int yy) {
        // Compute intensities for left, right, up, down, and center zones
        ...
    }
};

AnsiString bmp2txt_big(Graphics::TBitmap *bmp, TFont *font) {
    // Character sized areas
    ...
}</code>
Salin selepas log masuk

Perbandingan

  • Penukaran berdasarkan intensiti: Mudah dilaksanakan, pantas, menghasilkan output yang besar dengan pemetaan piksel ke aksara. Sesuai untuk imej yang lebih besar.
  • Pemasangan aksara: Lebih perlahan, lebih kompleks, menghasilkan hasil yang lebih baik walaupun dengan fon yang lebih besar. Mengekalkan bentuk dan butiran untuk wajah dan beberapa imej yang kompleks.

Petua

  • Gunakan fon nada tetap (cth., Sistem) dengan set aksara OEM .
  • Percubaan dengan peta aksara dan reka letak zon yang berbeza.
  • Pertimbangkan keamatan songsang, di mana piksel hitam mempunyai nilai maksimum, untuk pratonton teks yang lebih baik pada latar belakang putih.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Imej kepada Seni ASCII Menggunakan C : Berasaskan Intensiti vs. Pemasangan Karakter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!