moroz1999/zx-image

Zx Spectrum图像转换器(PHP版)

安装: 92

依赖项: 0

建议者: 0

安全: 0

星星: 13

关注者: 7

分支: 1

开放问题: 0

类型:package

5.6.1 2024-04-02 20:47 UTC

README

PHP-based ZX Spectrum images parsing into PNG/GIF. Supports animation, supports file caching.

基本使用示例

<?php
include_once('ZxImage/Converter.php');

$converter = new \ZxImage\Converter();
$converter->setType('standard');
$converter->setPath('example.scr'); //
$converter->setBorder(5); //cyan
$converter->setZoom(1); //1 for 320*240 (256*192 with border)

//convert and return image data
if ($binary = $converter->getBinary()) {
    //after conversion we can ask for a mime type of last operation and send it to browser
    if ($imageType = $converter->getResultMime()) {
        header('Content-Type: ' . $imageType);
    }

    //send image contents to browser
    echo $binary;
}

文件缓存设置示例

即时转换速度慢且占用资源,因此建议设置内置文件缓存。

//ensure that there is a folder for converted images cache
if (!is_dir($folderForCache)) {
	mkdir($folderForCache);
}
//set cache path
$converter->setCachePath($folderForCache);
//enable file cache
$converter->setCacheEnabled(true);

在此之后,所有图像都将存储在文件夹中作为缓存。转换器将自动检查并删除过时图像。

安装

通过Composer安装

{
    "require": {
		"moroz1999/zx-image": "*"
    }
}

该库也无需Composer自动加载器即可工作。

支持的格式

  • "standard" - 标准ZX Spectrum屏幕内存转储。大小:6912。包含6144字节的像素数据,768字节的属性。
  • "ulaplus" - 带有附加ULA+调色的板ZX Spectrum屏幕。大小:6976。包含6144字节的像素数据,768字节的属性,64字节的ULA+调色板。
  • "sam3" - Sam Coupe模式3屏幕转储。大小:24617。包含24576字节的像素数据,4字节的Mode3调色板,37字节未使用。
  • "sam4" - Sam Coupe模式4屏幕转储。大小:24617。包含24576字节的像素数据,16字节的Mode4调色板,25字节未使用。
  • "zxevo" - 以16色标准BMP文件保存的ZX Evolution屏幕。
  • "sxg" - 以SXG格式保存的ZX Evolution(也支持TSConf屏幕)屏幕。
  • "bsc" - 边框屏幕。大小:11136。包含6144字节的像素数据,768字节的属性,4224字节的边框“像素”。
  • "bsp" - Trefi的边框屏幕。大小不一。支持6912,gigascreen,用于边框数据的字节,以及可选的边框“像素”数据。
  • "bmc4" - 带边框的多颜色8*4。大小:11904。包含6144字节的像素数据,1536字节的属性,4224字节的边框“像素”。
  • "gigascreen" - 以50Hz软件闪烁显示的两个标准屏幕。大小:13824。包含两个标准SCR文件:6144字节的像素数据,768字节的属性,6144字节的像素数据,768字节的属性。
  • "chrd" - Alone Coder的CHR$格式,支持单色、标准和gigascreen图像的可变宽/高。大小:根据图像宽/高而变化。数据按字符单独包含。
  • "monochrome" - 无属性的ZX Spectrum单色屏幕。大小:6144,仅包含像素数据。
  • "flash" - 为硬件“Flash颜色”修改制作的屏幕。大小:6912。格式与标准屏幕相同,但使用闪存位用于混合纸张+墨水,强制黑色纸张。
  • "tricolor" - 软件闪烁RGB图像。大小:18432。包含6144字节的红色像素数据,6144字节的绿色像素数据,6144字节的蓝色像素数据。
  • "multicolor" - 多颜色8*2。大小:9216。包含6144字节的像素数据,3072字节的属性数据。
  • "multicolor4" - 多颜色8*4。大小:7680。包含6144字节的像素数据,1536字节的属性数据。
  • "multiartist" - 从Multiartist(MG1、MG2、MG4、MG8,不是PC原生MGS)导出的ZX Spectrum多颜色gigascreen图像。大小:不一。
  • "attributes" - 使用网格实现的53色ZX Spectrum原生属性屏幕。大小:768。仅包含768字节的属性。
  • "lowresgs" - ZX Spectrum gigascreen 8*4属性屏幕。大小:1628。包含84字节的问号,8字节的纹理,768字节的第一个屏幕属性,768字节的第二个屏幕属性。
  • "mc" - ZX Spectrum多颜色8*1屏幕。大小:12288。包含6144字节的线性像素数据,6144字节的线性属性数据。
  • "mlt" - ZX Spectrum多颜色8*1屏幕。大小:12288。包含6144字节的非线性像素数据,6144字节的线性属性数据。
  • "timex81" - Timex多颜色8*1屏幕。大小:12288。包含6144字节的非线性像素数据,6144字节的以非线性格式(Timex屏幕内存转储)表示的属性。
  • "timexhr" - Timex高分辨率512*192屏幕。大小:12289。奇数列像素数据6144字节,偶数列像素数据6144字节,颜色信息1字节。
  • "timexhrg" - Timex高分辨率Gigascreen 512*192屏幕。大小:24578。两个timexhr屏幕依次排列。
  • "stellar" - ZX Spectrum图形模式,结合多彩和128K屏幕切换,产生交替明暗颜色的4x4像素块,在64x48分辨率下实现64色有效调色板,无属性限制且无闪烁。首次由RST7在Pentagon机器的Eye Ache 2中实现,并由Gasman在Buttercream Sputnik中为原始Spectrum重新实现。
  • "atmega" - ATM Turbo 2+ EGA图形模式。包含像素数据和调色板的32128文件。
  • "nxi" - ZX Spectrum Next nxi文件。49664文件包含RGB333调色板的512字节和256*192字节的像素。
  • "grf" - Profi GRF文件(部分支持高分辨率16色模式)

许可证

Creative Commons Zero v1.0通用