古籏一浩 (@openspc) profile picture

古くはMZ-700な人。途中はDTPな人。その後JavaScriptな人。次は映像とか。その後は小売業。

Japan
Joined December 2009
開発:BASICトランスパイラー。映像と音声がずれちゃうのを修正中。でもまあ、限界あるので、細かいところは専用ソフトでお願い、みたいな。
69
雑談:すずめの給食センター
7
178
雑談:エロビディアが不安視されてるとな
79
開発:BASICトランスパイラー。mz-700のキャラグラ動画にしようと作ってみたものの低速すぎて300フレーム変換に何分もかかる(元は1334x750サイズ) さすがにこれでは使い物にならないので連続読み込みモードを追加
1
110
開発:BASICトランスパイラー。キャラグラ動画にしようとLOADMOVIE()を使ったら戻り値がピクセル配列になってなくてエラー。現在修正中。 まあ、何か作ると、いろいろ抜けや不具合があってAIだから良いということはなさそう。
2
106
どのくらいの文字数・行数でキャラグラらしさ(mz-700らしさ)が失われるかのテスト。40x25,80x50,160x100,20x12。 こう見るとキャラグラは80x50あたりが限度なのかも。逆に20x12サイズの方がキャラグラっぽい。
76
開発:BASICトランスパイラー。mz-700のキャラグラに変換するBASICプログラムだと遅いのでネイティブにFILETR()に組み込んだ。キャラグラ、セミグラ、カラーのみの選択ができバイナリ出力(配列)でMZT,MZFにも描き出せるように。フォントファイルも指定可能。フォントファイル省略時はセミグラフィックになる。 10 R$=LOADIMAGE(ARGS{1},src()) 20 IF R$="" THEN END 25 Font$=ARGS{2} 30 a()=FILTER("mz700キャラグラ変換",src(),"文字と色","画像",40,25,Font$) 40 b()=FILTER("mz700キャラグラ変換",src(),"文字のみ","画像",40,25,Font$) 50 c()=FILTER("mz700キャラグラ変換",src(),"色のみ","画像",40,25,Font$) 60 SAVEIMAGE "out/mz700_text_color.png",a() 70 SAVEIMAGE "out/mz700_text_only.png",b() 80 SAVEIMAGE "out/mz700_color_only.png",c()
1
2
10
255
開発:BASICトランスパイラー。字形はかなり苦しいけどUnicodeフォントからmz-700の文字データを生成するBASICプログラム。比較しても似てない・・・けど、とりあえずということで・・・ maroon.dti.ne.jp/youkan/mz70… 【MZ-700互換近似フォント生成プログラム】 100 OPTION BASE 0 110 OPTION BINARY_ARRAY_TRIM OFF 120 DIM unicodeMap(511) 130 DIM fontData(4095) 135 DIM glyphScale(511) 140 GOSUB 10000 150 OutPath$="mz700_unifont_approx.bin" 160 PreviewPath$="mz700_unifont_approx_preview.png" 170 IF LEN(ARGS{})>=1 THEN OutPath$=ARGS{1} 180 IF LEN(ARGS{})>=2 THEN PreviewPath$=ARGS{2} 190 JPFont$=__HOMEDIR+"/Library/Fonts/unifont_jp-18.0.01.otf" 200 UpperFont$=__HOMEDIR+"/Library/Fonts/unifont_upper-18.0.01.otf" 210 IF LEN(ARGS{})>=3 THEN JPFont$=ARGS{3} 220 IF LEN(ARGS{})>=4 THEN UpperFont$=ARGS{4} 280 SCREEN preview(),1088,544 FILL 0,0,0,255 300 FOR Code=0 TO 511 310 U=unicodeMap(Code) 320 IF U>0 THEN GOSUB 1000 330 NEXT 335 fontData(4095)=0 340 PRINTBIN #OutPath$,fontData() 350 IF __LAST_PRINT_ERROR<>"" THEN PRINT "フォントデータの保存に失敗しました: ";__LAST_PRINT_ERROR:END 360 SavedPreview$=SAVEIMAGE(PreviewPath$,preview()) 370 IF SavedPreview$="" THEN PRINT "確認画像の保存に失敗しました":END 380 PRINT "生成完了: ";OutPath$ 390 PRINT "サイズ: ";SIZE(fontData());" bytes" 400 PRINT "確認画像: ";SavedPreview$ 410 PRINT "注意: MZ-700実機CGROMの複製ではなく、GNU Unifontから生成した互換近似フォントです。" 420 END 1000 IF U>65535 THEN WantedFont$=UpperFont$ ELSE WantedFont$=JPFont$ 1010 SCREEN glyph(),16,32 FILL 0,0,0,255 FORCE 1020 DRAW "FONT",WantedFont$,"Regular",16,[255,255,255] 1030 DRAW "ANTIALIAS",glyph(),0 1040 DRAW "TEXT",glyph(),0,0,CHR(U) 1050 MaxX=-1:BottomY=-1 1060 FOR SY=0 TO 31 1070 FOR SX=0 TO 15 1080 POINT glyph(),SX,SY,R,G,B,A 1090 IF R+G+B>=384 AND SX>MaxX THEN MaxX=SX 1100 IF R+G+B>=384 AND SY>BottomY THEN BottomY=SY 1110 NEXT 1120 NEXT 1130 SourceWidth=8 1140 IF glyphScale(Code)=2 THEN SourceWidth=16 1150 IF MaxX+1>SourceWidth THEN SourceWidth=MaxX+1 1160 SourceHeight=16 1170 IF BottomY+1>SourceHeight THEN SourceHeight=BottomY+1 1180 BaseX=(Code MOD 32)*34 1190 BaseY=INT(Code/32)*34 1200 FOR OY=0 TO 7 1210 ByteValue=0 1220 StartY=INT(OY*SourceHeight/8) 1230 EndY=INT((OY+1)*SourceHeight/8)-1 1240 IF EndY<StartY THEN EndY=StartY 1250 FOR OX=0 TO 7 1260 StartX=INT(OX*SourceWidth/8) 1270 EndX=INT((OX+1)*SourceWidth/8)-1 1280 IF EndX<StartX THEN EndX=StartX 1290 PixelCount=0 1300 FOR SY=StartY TO EndY 1310 FOR SX=StartX TO EndX 1320 POINT glyph(),SX,SY,R,G,B,A 1330 IF R+G+B>=384 THEN PixelCount=PixelCount+1 1340 NEXT 1350 NEXT 1360 SampleCount=(EndX-StartX+1)*(EndY-StartY+1) 1370 PixelOn=0 1380 IF PixelCount>0 AND PixelCount*4>=SampleCount THEN PixelOn=1 1390 IF PixelOn=1 THEN ByteValue=ByteValue+POW(2,7-OX) 1400 FOR PY=0 TO 3 1410 FOR PX=0 TO 3 1420 IF PixelOn=1 THEN PSET preview(),BaseX+OX*4+PX,BaseY+OY*4+PY,255,255,255,255 1430 NEXT 1440 NEXT 1450 NEXT 1460 fontData(Code*8+OY)=ByteValue 1470 NEXT 1480 RETURN 10000 unicodeMap(0)=32 10010 unicodeMap(1)=65 10020 unicodeMap(2)=66 10030 unicodeMap(3)=67 10040 unicodeMap(4)=68 10050 unicodeMap(5)=69 10060 unicodeMap(6)=70 10070 unicodeMap(7)=71 10080 unicodeMap(8)=72 10090 unicodeMap(9)=73 10100 unicodeMap(10)=74 10110 unicodeMap(11)=75 10120 unicodeMap(12)=76 10130 unicodeMap(13)=77 10140 unicodeMap(14)=78 10150 unicodeMap(15)=79 10160 unicodeMap(16)=80 10170 unicodeMap(17)=81 10180 unicodeMap(18)=82 10190 unicodeMap(19)=83 10200 unicodeMap(20)=84 10210 unicodeMap(21)=85 10220 unicodeMap(22)=86 10230 unicodeMap(23)=87 10240 unicodeMap(24)=88 10250 unicodeMap(25)=89 10260 unicodeMap(26)=90 10270 unicodeMap(27)=9532 10280 unicodeMap(28)=9492 10290 unicodeMap(29)=9496 10300 unicodeMap(30)=9500 10310 unicodeMap(31)=9524 10320 unicodeMap(32)=48 10330 unicodeMap(33)=49 10340 unicodeMap(34)=50 10350 unicodeMap(35)=51 10360 unicodeMap(36)=52 10370 unicodeMap(37)=53 10380 unicodeMap(38)=54 10390 unicodeMap(39)=55 10400 unicodeMap(40)=56 10410 unicodeMap(41)=57 10420 unicodeMap(42)=45 10430 unicodeMap(43)=61 10440 unicodeMap(44)=59 10450 unicodeMap(45)=47 10460 unicodeMap(46)=46 10470 unicodeMap(47)=44 10480 unicodeMap(48)=129910 10490 unicodeMap(49)=129904 10500 unicodeMap(50)=129916 10510 unicodeMap(51)=129919 10520 unicodeMap(52)=129912 10530 unicodeMap(53)=129906 10540 unicodeMap(54)=129922 10550 unicodeMap(55)=9614 10560 unicodeMap(56)=129908 10570 unicodeMap(57)=129914 10580 unicodeMap(58)=9604 10590 unicodeMap(59)=9616 10600 unicodeMap(60)=9601 10610 unicodeMap(61)=9621 10620 unicodeMap(62)=9602 10630 unicodeMap(63)=129927 10640 unicodeMap(64)=8594 10650 unicodeMap(65)=9824 10660 unicodeMap(66)=9701 10670 unicodeMap(67)=9608 10680 unicodeMap(68)=9830 10690 unicodeMap(69)=8592 10700 unicodeMap(70)=9827 10710 unicodeMap(71)=9679 10720 unicodeMap(72)=9675 10730 unicodeMap(73)=63 10740 unicodeMap(74)=9688 10750 unicodeMap(75)=9581 10760 unicodeMap(76)=9582 10770 unicodeMap(77)=9699 10780 unicodeMap(78)=9698 10790 unicodeMap(79)=58 10800 unicodeMap(80)=8593 10810 unicodeMap(81)=60 10820 unicodeMap(82)=91 10830 unicodeMap(83)=9829 10840 unicodeMap(84)=93 10850 unicodeMap(85)=64 10860 unicodeMap(86)=9700 10870 unicodeMap(87)=62 10880 unicodeMap(88)=129932 10890 unicodeMap(89)=92 10900 unicodeMap(90)=9618 10910 unicodeMap(91)=9626 10920 unicodeMap(92)=9484 10930 unicodeMap(93)=9488 10940 unicodeMap(94)=9508 10950 unicodeMap(95)=9516 10960 unicodeMap(96)=960 10970 unicodeMap(97)=33 10980 unicodeMap(98)=34 10990 unicodeMap(99)=35 11000 unicodeMap(100)=36 11010 unicodeMap(101)=37 11020 unicodeMap(102)=38 11030 unicodeMap(103)=39 11040 unicodeMap(104)=40 11050 unicodeMap(105)=41 11060 unicodeMap(106)=43 11070 unicodeMap(107)=42 11080 unicodeMap(108)=9630 11090 unicodeMap(109)=9587 11100 unicodeMap(110)=9583 11110 unicodeMap(111)=9584 11120 unicodeMap(112)=9620 11130 unicodeMap(113)=9615 11140 unicodeMap(114)=129917 11150 unicodeMap(115)=129918 11160 unicodeMap(116)=129911 11170 unicodeMap(117)=129905 11180 unicodeMap(118)=9585 11190 unicodeMap(119)=9586 11200 unicodeMap(120)=129913 11210 unicodeMap(121)=129907 11220 unicodeMap(122)=9600 11230 unicodeMap(123)=9612 11240 unicodeMap(126)=9603 11250 unicodeMap(127)=129928 11260 unicodeMap(128)=8595 11270 unicodeMap(129)=12481 11280 unicodeMap(130)=12467 11290 unicodeMap(131)=12477 11300 unicodeMap(132)=12471 11310 unicodeMap(133)=12452 11320 unicodeMap(134)=12495 11330 unicodeMap(135)=12461 11340 unicodeMap(136)=12463 11350 unicodeMap(137)=12491 11360 unicodeMap(138)=12510 11370 unicodeMap(139)=12494 11380 unicodeMap(140)=12522 11390 unicodeMap(141)=12514 11400 unicodeMap(142)=12511 11410 unicodeMap(143)=12521 11420 unicodeMap(144)=12475 11430 unicodeMap(145)=12479 11440 unicodeMap(146)=12473 11450 unicodeMap(147)=12488 11460 unicodeMap(148)=12459 11470 unicodeMap(149)=12490 11480 unicodeMap(150)=12498 11490 unicodeMap(151)=12486 11500 unicodeMap(152)=12469 11510 unicodeMap(153)=12531 11520 unicodeMap(154)=12484 11530 unicodeMap(155)=12525 11540 unicodeMap(156)=12465 11550 unicodeMap(157)=12300 11560 unicodeMap(158)=12449 11570 unicodeMap(159)=12515 11580 unicodeMap(160)=12527 11590 unicodeMap(161)=12492 11600 unicodeMap(162)=12501 11610 unicodeMap(163)=12450 11620 unicodeMap(164)=12454 11630 unicodeMap(165)=12456 11640 unicodeMap(166)=12458 11650 unicodeMap(167)=12516 11660 unicodeMap(168)=12518 11670 unicodeMap(169)=12520 11680 unicodeMap(170)=12507 11690 unicodeMap(171)=12504 11700 unicodeMap(172)=12524 11710 unicodeMap(173)=12513 11720 unicodeMap(174)=12523 11730 unicodeMap(175)=12493 11740 unicodeMap(176)=12512 11750 unicodeMap(177)=12301 11760 unicodeMap(178)=12451 11770 unicodeMap(179)=12517 11780 unicodeMap(180)=12530 11790 unicodeMap(181)=12289 11800 unicodeMap(182)=12453 11810 unicodeMap(183)=12519 11820 unicodeMap(184)=12444 11830 unicodeMap(185)=12539 11840 unicodeMap(186)=12455 11850 unicodeMap(187)=12483 11860 unicodeMap(188)=12443 11870 unicodeMap(189)=12290 11880 unicodeMap(190)=12457 11890 unicodeMap(191)=12540 11900 unicodeMap(192)=129203 11910 unicodeMap(193)=129207 11920 unicodeMap(194)=129205 11930 unicodeMap(195)=129206 11940 unicodeMap(196)=129204 11950 unicodeMap(197)=127351 11960 unicodeMap(198)=127346 11970 unicodeMap(199)=128760 11980 unicodeMap(200)=117761 11990 unicodeMap(201)=117760 12000 unicodeMap(202)=129989 12010 unicodeMap(203)=117762 12020 unicodeMap(204)=117763 12030 unicodeMap(205)=117764 12040 unicodeMap(206)=9787 12050 unicodeMap(207)=9786 12060 unicodeMap(208)=26085 12070 unicodeMap(209)=26376 12080 unicodeMap(210)=28779 12090 unicodeMap(211)=27700 12100 unicodeMap(212)=26408 12110 unicodeMap(213)=37329 12120 unicodeMap(214)=22303 12130 unicodeMap(215)=29983 12140 unicodeMap(216)=24180 12150 unicodeMap(217)=26178 12160 unicodeMap(218)=20998 12170 unicodeMap(219)=31186 12180 unicodeMap(220)=20870 12190 unicodeMap(221)=165 12200 unicodeMap(222)=163 12210 unicodeMap(223)=128013 12220 unicodeMap(224)=117765 12230 unicodeMap(225)=117766 12240 unicodeMap(226)=117767 12250 unicodeMap(227)=117769 12260 unicodeMap(228)=117771 12270 unicodeMap(229)=117772 12280 unicodeMap(230)=117773 12290 unicodeMap(231)=117775 12300 unicodeMap(232)=117774 12310 unicodeMap(233)=117776 12320 unicodeMap(234)=117777 12330 unicodeMap(235)=117778 12340 unicodeMap(236)=117779 12350 unicodeMap(237)=117780 12360 unicodeMap(238)=117770 12370 unicodeMap(239)=129936 12380 unicodeMap(241)=117793 12390 unicodeMap(242)=117794 12400 unicodeMap(243)=117795 12410 unicodeMap(244)=117796 12420 unicodeMap(245)=117797 12430 unicodeMap(246)=117798 12440 unicodeMap(247)=117799 12450 unicodeMap(248)=117800 12460 unicodeMap(249)=117801 12470 unicodeMap(250)=117802 12480 unicodeMap(251)=117803 12490 unicodeMap(252)=117804 12500 unicodeMap(253)=117805 12510 unicodeMap(254)=117806 12520 unicodeMap(255)=117807 12530 unicodeMap(257)=97 12540 unicodeMap(258)=98 12550 unicodeMap(259)=99 12560 unicodeMap(260)=100 12570 unicodeMap(261)=101 12580 unicodeMap(262)=102 12590 unicodeMap(263)=103 12600 unicodeMap(264)=104 12610 unicodeMap(265)=105 12620 unicodeMap(266)=106 12630 unicodeMap(267)=107 12640 unicodeMap(268)=108 12650 unicodeMap(269)=109 12660 unicodeMap(270)=110 12670 unicodeMap(271)=111 12680 unicodeMap(272)=112 12690 unicodeMap(273)=113 12700 unicodeMap(274)=114 12710 unicodeMap(275)=115 12720 unicodeMap(276)=116 12730 unicodeMap(277)=117 12740 unicodeMap(278)=118 12750 unicodeMap(279)=119 12760 unicodeMap(280)=120 12770 unicodeMap(281)=121 12780 unicodeMap(282)=122 12790 unicodeMap(374)=117791 12800 unicodeMap(375)=117792 12810 unicodeMap(385)=12385 12820 unicodeMap(386)=12371 12830 unicodeMap(387)=12381 12840 unicodeMap(388)=12375 12850 unicodeMap(389)=12356 12860 unicodeMap(390)=12399 12870 unicodeMap(391)=12365 12880 unicodeMap(392)=12367 12890 unicodeMap(393)=12395 12900 unicodeMap(394)=12414 12910 unicodeMap(395)=12398 12920 unicodeMap(396)=12426 12930 unicodeMap(397)=12418 12940 unicodeMap(398)=12415 12950 unicodeMap(399)=12425 12960 unicodeMap(400)=12379 12970 unicodeMap(401)=12383 12980 unicodeMap(402)=12377 12990 unicodeMap(403)=12392 13000 unicodeMap(404)=12363 13010 unicodeMap(405)=12394 13020 unicodeMap(406)=12402 13030 unicodeMap(407)=12390 13040 unicodeMap(408)=12373 13050 unicodeMap(409)=12435 13060 unicodeMap(410)=12388 13070 unicodeMap(411)=12429 13080 unicodeMap(412)=12369 13090 unicodeMap(414)=12353 13100 unicodeMap(415)=12419 13110 unicodeMap(416)=12431 13120 unicodeMap(417)=12396 13130 unicodeMap(418)=12405 13140 unicodeMap(419)=12354 13150 unicodeMap(420)=12358 13160 unicodeMap(421)=12360 13170 unicodeMap(422)=12362 13180 unicodeMap(423)=12420 13190 unicodeMap(424)=12422 13200 unicodeMap(425)=12424 13210 unicodeMap(426)=12411 13220 unicodeMap(427)=12408 13230 unicodeMap(428)=12428 13240 unicodeMap(429)=12417 13250 unicodeMap(430)=12427 13260 unicodeMap(431)=12397 13270 unicodeMap(432)=12416 13280 unicodeMap(434)=12355 13290 unicodeMap(435)=12421 13300 unicodeMap(436)=12434 13310 unicodeMap(438)=12357 13320 unicodeMap(439)=12423 13330 unicodeMap(442)=12359 13340 unicodeMap(443)=12387 13350 unicodeMap(446)=12361 14000 glyphScale(129)=2 14010 glyphScale(130)=2 14020 glyphScale(131)=2 14030 glyphScale(132)=2 14040 glyphScale(133)=2 14050 glyphScale(134)=2 14060 glyphScale(135)=2 14070 glyphScale(136)=2 14080 glyphScale(137)=2 14090 glyphScale(138)=2 14100 glyphScale(139)=2 14110 glyphScale(140)=2 14120 glyphScale(141)=2 14130 glyphScale(142)=2 14140 glyphScale(143)=2 14150 glyphScale(144)=2 14160 glyphScale(145)=2 14170 glyphScale(146)=2 14180 glyphScale(147)=2 14190 glyphScale(148)=2 14200 glyphScale(149)=2 14210 glyphScale(150)=2 14220 glyphScale(151)=2 14230 glyphScale(152)=2 14240 glyphScale(153)=2 14250 glyphScale(154)=2 14260 glyphScale(155)=2 14270 glyphScale(156)=2 14280 glyphScale(157)=2 14290 glyphScale(158)=2 14300 glyphScale(159)=2 14310 glyphScale(160)=2 14320 glyphScale(161)=2 14330 glyphScale(162)=2 14340 glyphScale(163)=2 14350 glyphScale(164)=2 14360 glyphScale(165)=2 14370 glyphScale(166)=2 14380 glyphScale(167)=2 14390 glyphScale(168)=2 14400 glyphScale(169)=2 14410 glyphScale(170)=2 14420 glyphScale(171)=2 14430 glyphScale(172)=2 14440 glyphScale(173)=2 14450 glyphScale(174)=2 14460 glyphScale(175)=2 14470 glyphScale(176)=2 14480 glyphScale(177)=2 14490 glyphScale(178)=2 14500 glyphScale(179)=2 14510 glyphScale(180)=2 14520 glyphScale(181)=2 14530 glyphScale(182)=2 14540 glyphScale(183)=2 14550 glyphScale(184)=2 14560 glyphScale(185)=2 14570 glyphScale(186)=2 14580 glyphScale(187)=2 14590 glyphScale(188)=2 14600 glyphScale(189)=2 14610 glyphScale(190)=2 14620 glyphScale(191)=2 14630 glyphScale(197)=2 14640 glyphScale(198)=2 14650 glyphScale(199)=2 14660 glyphScale(208)=2 14670 glyphScale(209)=2 14680 glyphScale(210)=2 14690 glyphScale(211)=2 14700 glyphScale(212)=2 14710 glyphScale(213)=2 14720 glyphScale(214)=2 14730 glyphScale(215)=2 14740 glyphScale(216)=2 14750 glyphScale(217)=2 14760 glyphScale(218)=2 14770 glyphScale(219)=2 14780 glyphScale(220)=2 14790 glyphScale(223)=2 14800 glyphScale(385)=2 14810 glyphScale(386)=2 14820 glyphScale(387)=2 14830 glyphScale(388)=2 14840 glyphScale(389)=2 14850 glyphScale(390)=2 14860 glyphScale(391)=2 14870 glyphScale(392)=2 14880 glyphScale(393)=2 14890 glyphScale(394)=2 14900 glyphScale(395)=2 14910 glyphScale(396)=2 14920 glyphScale(397)=2 14930 glyphScale(398)=2 14940 glyphScale(399)=2 14950 glyphScale(400)=2 14960 glyphScale(401)=2 14970 glyphScale(402)=2 14980 glyphScale(403)=2 14990 glyphScale(404)=2 15000 glyphScale(405)=2 15010 glyphScale(406)=2 15020 glyphScale(407)=2 15030 glyphScale(408)=2 15040 glyphScale(409)=2 15050 glyphScale(410)=2 15060 glyphScale(411)=2 15070 glyphScale(412)=2 15080 glyphScale(414)=2 15090 glyphScale(415)=2 15100 glyphScale(416)=2 15110 glyphScale(417)=2 15120 glyphScale(418)=2 15130 glyphScale(419)=2 15140 glyphScale(420)=2 15150 glyphScale(421)=2 15160 glyphScale(422)=2 15170 glyphScale(423)=2 15180 glyphScale(424)=2 15190 glyphScale(425)=2 15200 glyphScale(426)=2 15210 glyphScale(427)=2 15220 glyphScale(428)=2 15230 glyphScale(429)=2 15240 glyphScale(430)=2 15250 glyphScale(431)=2 15260 glyphScale(432)=2 15270 glyphScale(434)=2 15280 glyphScale(435)=2 15290 glyphScale(436)=2 15300 glyphScale(438)=2 15310 glyphScale(439)=2 15320 glyphScale(442)=2 15330 glyphScale(443)=2 15340 glyphScale(446)=2 20000 RETURN 【MZ-700互換近似フォント生成プログラム】 ■目的 GNU Unifontの字形から、MZ-700互換の並びを持つ8×8ドット・512文字・4096バイトの 近似フォントデータを生成します。 これはMZ-700実機のCGROMを複製するプログラムではありません。 字形はGNU Unifontを8×8へ縮小して新たに生成するため、実機の字形とは異なります。 ■必要なフォント 次の2つのフォントファイルを用意してください。 unifont_jp-18.0.01.otf (ファミリー名: Unifont-JP) unifont_upper-18.0.01.otf (ファミリー名: Unifont Upper) 入手先: unifoundry.com/unifont/ ■実行例 ./ex make_mz700_unifont_approx.bas ./make_mz700_unifont_approx 出力先を指定する場合: ./make_mz700_unifont_approx font.bin preview.png フォントファイルのパスも指定する場合: ./make_mz700_unifont_approx font.bin preview.png jp.otf upper.otf macOSでフォントパスを省略した場合は、次の場所を使用します。 ~/Library/Fonts/unifont_jp-18.0.01.otf ~/Library/Fonts/unifont_upper-18.0.01.otf フォント名ではなくOTFファイルを直接読み込むため、Font BookやOSのフォント一覧に 正しく表示されない場合でも生成できます。別の場所へ保存した場合は、第3・第4引数で 各ファイルのパスを指定してください。 ■生成ファイル mz700_unifont_approx.bin 4096バイトのフォントデータ mz700_unifont_approx_preview.png 32列×16行の目視確認画像 確認画像は左上から表示コード0、1、2……511の順です。 各文字を4倍表示し、セル間に2ピクセルの間隔を設けています。 ■変換方法 GNU Unifontは8または16ピクセル幅×16ピクセル高の字形です。 半角字形は横8ピクセル、全角字形は横16ピクセルを基準に8ピクセルへ変換します。 半角・全角の判定表はGNU Unifont 18.0.01の字送り幅から作成しています。 文字が基準領域を越えて描画された場合は、その部分を含むよう変換範囲を自動調整します。 縦方向も16ピクセルを基準とし、下にはみ出す字形は全体が入るよう自動調整します。 縮小領域の4分の1以上が点灯している場合に、出力側のピクセルを点灯します。 これにより、細い斜線やカタカナの1ドット線が縮小時に消えにくくなります。 Unicode対応表に定義されていない表示コードは空白になります。対応表に定義された 336文字については、指定した2つのGNU Unifont 18.0.01ファイルに字形が存在することを 確認しています。似た図形が連続する部分には、Legacy Computing Symbolsとして定義された セミグラフィック用の字形が含まれます。 ■ライセンスと出典 ・GNU Unifont 18.0.01 SIL Open Font License 1.1 または GPL 2+(Font Embedding Exception付き)の デュアルライセンスです。本生成物を第三者へ配布するときは、選択したライセンスの 条件に従ってください。 ・表示コードとUnicodeコードポイントの対応 dogatana/mz700.ttf-experimental の map.json を使用しています。 map.jsonを含む当該リポジトリの該当コードはMIT Licenseです。 github.com/dogatana/mz700.tt… ・make_mz700_unifont_approx.bas 本ファイルはユーザーが実行する独立したBASIC2026プログラムです。 BASIC2026本体へフォントデータやGNU Unifont本体を組み込むものではありません。
2
3
426
いろいろダメだった・・。
1
2
107
開発:BASICトランスパイラー。最新のUnicodeフォントからmz-700用のフォントデータを生成。
1
1
2
193