Windows 常用中文字体包

本仓库提供了Windows系统中常用的四款中文字体资源下载,包括: simsun.ttc:宋体(SimSun),是Windows操作系统中非常基础的简体中文字体,广泛应用于文档编辑和网页显示。 simhei.ttf:黑体(SimHei),以其简洁明快的线条深受用户喜爱,适用于标题或需要明确、现代感的文本展示。 simfang.ttf:仿宋(SimFang),常用于正式文档、书籍排版,给人以古典雅致的感觉。 simkai.ttf:楷体(SimKai),具有手写般的自然流畅,适合文学作品、通知、信函等,能够增添文本的艺术性和可读性。 这些字体来源于Windows 10操作系统,适用于个人和教育用途,可以极大地丰富你的文档样式和设计选项。在安装这些字体后,你可以在各种应用程序中使用它们,以达到更美观的文字呈现效果。 来源:https://gitcode.com/open-source-toolkit/0ec0a 下载: sim-fonts下载

2025-07-04 · 1 min · Duke Yin

HomeAssistant 获取 Proxmox VE CPU温度数据

对于家庭小主机硬件条件下,不管操作系统是ESXI还是PVE,都比较难获得CPU温度数据,这对于监控服务器的健康状态来说是极为不利的。 PVE(Proxmox Virtual Environment)稍好,因为底层是Debian,可以通过安装软件包获取硬件传感器数据。 通过这一篇文章的各种操作之后,我们将可以在homeassistant界面里直接看到服务器的CPU温度和历史数据,从而掌握家庭服务器的健康状况。 (本文主要讨论HomeAssistant集成,所以本文不涉及将传感器信息显示在PVE后台界面,若需要可参考网络上其他文章。) PVE安装传感器包 在pve服务器上: apt update && apt-get install lm-sensors -y 安装完毕后,开始探测支持的传感器: sensors-detect 跟着提示一步一步走,基本都是选Y,直到探测结束。 然后可以通过命令查看已经注册的传感器: sensors 在我的实例输出: root@pve:~# sensors k10temp-pci-00c3 Adapter: PCI adapter Tctl: +48.8°C nvme-pci-0100 Adapter: PCI adapter Composite: +46.9°C (low = -273.1°C, high = +89.8°C) (crit = +94.8°C) Sensor 1: +46.9°C (low = -273.1°C, high = +65261.8°C) Sensor 2: +41.9°C (low = -273.1°C, high = +65261.8°C) ...

2025-06-23 · 4 min · Duke Yin

主流以太网线缆及带宽

以下是主流以太网线缆类型的详细参数对比表,包含带宽能力、传输距离及核心特点: 线缆类别最高稳定带宽能力理论最大传输距离频率带宽特点与备注五类 (Cat 5)100 Mbps(百兆)100米100 MHz已淘汰 仅支持百兆网络 无防串扰设计超五类 (Cat 5e)1 Gbps(千兆) 2.5 Gbps*100米 100米*100 MHz主流基础型号 支持千兆网络 *2.5G需设备支持(100米内) 性价比高六类 (Cat 6)1 Gbps(千兆) 10 Gbps*100米 55米*250 MHz物理十字骨架隔离 *10Gbps仅限55米内 抗干扰优于Cat 5e超六类 (Cat 6a)10 Gbps(万兆)100米500 MHz全屏蔽设计(F/UTP或U/FTP) 100米满速万兆 严格串扰控制七类 (Cat 7)10 Gbps(万兆)100米600 MHz双屏蔽层(S/FTP) 非RJ45接口(需GG45) 工业级抗干扰八类 (Cat 8)25/40 Gbps30米2000 MHz数据中心短距离互联 全屏蔽结构 支持25G/40G高速网络 关键补充说明: 超五类 (Cat 5e): 实际支持2.5GBASE-T(IEEE 802.3bz),在100米距离稳定运行,是性价比最高的升级选择。 六类 (Cat 6): 万兆(10GBASE-T)需控制在55米内,超出可能降速,长距离万兆需选Cat 6a。 屏蔽类型: Cat 6a/7/8 均需屏蔽设计(如F/UTP、U/FTP、S/FTP),安装时要求接地,否则可能引入干扰。 应用场景建议: 家庭/办公:Cat 5e或Cat 6(千兆/2.5G) NAS/企业布线:Cat 6a(万兆长距离) 数据中心:Cat 8(25G/40G短距离骨干) 水晶头兼容性: Cat 6及以上建议搭配对应等级水晶头,Cat 7/8需专用接口设备。 选型提示:当前新装工程推荐超六类(Cat 6a),兼顾万兆带宽与100米传输,未来十年无需更换。 ...

2025-06-10 · 1 min · Duke Yin

关于PVE的一些优化和设置

PVE虚拟机硬盘直通方法详解 PVE 内核清理和强制使用某内核 PVE8、PVE9主机获取IPV6并添加SSL证书 PVE脚本合辑 PVE开启xterm.js控制台 PVE配置UPS不间断电源 PVE虚拟机配置Guest Agent 安装VirtIO驱动 PVE USB移动硬盘直通 PVE网卡直通 天钡 WTR PRO AMD R7 5825U PVE安装传感器驱动

2025-06-10 · 1 min · Duke Yin

Vmware Workstation和ESXi的下载地址

这两个软件目前都官方免费了,但是下载地址非常不好找,于是备忘 Vmware Workstation VMware vSphere Hypervisor (ESXi)

2025-05-18 · 1 min · Duke Yin

Debian12安装

开启远程SSH 安装时如果没有选安装ssh,则先安装: apt update -y apt install ssh 安装完成后开启ssh service ssh start 如果首次安装的时候已经安装了ssh,则从这里开始。 编辑ssh配置文件 nano /etc/ssh/sshd_config 找到并修改以下几行 PermitRootLogin yes PasswordAuthentication yes 如果希望关闭密码登录,用秘钥,则: PermitRootLogin yes PasswordAuthentication no PubkeyAuthentication yes 最后重启SSH服务。 systemctl restart ssh 支持AVIF格式图像 如果你希望服务器有avif图像处理能力,需要安装三个包: sudo apt install libheif-dev sudo apt install libavif-dev sudo apt install libyuv-dev 然后在安装PHP的脚本里添加参数 ...

2025-04-27 · 1 min · Duke Yin

WordPress上传图片自动转换为WebP或AVIF

<?php /* Plugin Name: AVIF/WebP Image Converter Description: Automatically converts uploaded images to AVIF/WebP format with alpha channel support. Version: 1.0 Author: Your Name */ // 检测服务器支持情况 function awc_check_support() { $support = [ 'gd' => [ 'installed' => extension_loaded('gd'), 'avif' => false, 'webp' => false, ], 'imagick' => [ 'installed' => extension_loaded('imagick'), 'avif' => false, 'webp' => false, ] ]; // 检测GD库支持 if ($support['gd']['installed']) { $gd_info = gd_info(); $support['gd']['webp'] = isset($gd_info['WebP Support']) && $gd_info['WebP Support']; $support['gd']['avif'] = function_exists('imageavif') && defined('IMG_AVIF') && (imagetypes() & IMG_AVIF); } // 检测Imagick支持 if ($support['imagick']['installed']) { try { $imagick = new Imagick(); $formats = array_map('strtoupper', $imagick->queryFormats()); $support['imagick']['avif'] = in_array('AVIF', $formats); $support['imagick']['webp'] = in_array('WEBP', $formats); } catch (Exception $e) { error_log('Imagick检测失败: ' . $e->getMessage()); } } return $support; } // 后台显示检测结果 function awc_add_admin_page() { add_submenu_page( 'tools.php', '图片格式支持检测', '图片格式支持', 'manage_options', 'image-format-support', 'awc_display_support_page' ); } add_action('admin_menu', 'awc_add_admin_page'); function awc_display_support_page() { $support = awc_check_support(); ?> <div class="wrap"> <h1>服务器图片格式支持检测</h1> <h2>GD 库</h2> <p>已安装: <?php echo $support['gd']['installed'] ? '✅' : '❌'; ?></p> <p>AVIF 支持: <?php echo $support['gd']['avif'] ? '✅' : '❌'; ?></p> <p>WebP 支持: <?php echo $support['gd']['webp'] ? '✅' : '❌'; ?></p> <h2>Imagick</h2> <p>已安装: <?php echo $support['imagick']['installed'] ? '✅' : '❌'; ?></p> <p>AVIF 支持: <?php echo $support['imagick']['avif'] ? '✅' : '❌'; ?></p> <p>WebP 支持: <?php echo $support['imagick']['webp'] ? '✅' : '❌'; ?></p> <p>转换策略:优先使用 <?php if($support['gd']['avif']){ echo 'GD转AVIF'; }elseif($support['gd']['webp']){ echo 'GD转WEBP'; }elseif($support['imagick']['avif']){ echo 'Imagick转换AVIF'; }elseif($support['imagick']['webp']){ echo 'Imagick转换WebP'; } ?></p> </div> <?php } // 处理图片上传 add_filter('wp_handle_upload_prefilter', 'awc_convert_image'); function awc_convert_image($file) { // 仅处理图片文件 if (!str_starts_with($file['type'], 'image/')) { return $file; } $support = awc_check_support(); $tmp_path = $file['tmp_name']; $converted = false; $target_format = null; // 确定目标格式和转换方式 if (($support['gd']['avif'] || $support['imagick']['avif'])) { $target_format = 'avif'; } elseif (($support['gd']['webp'] || $support['imagick']['webp'])) { $target_format = 'webp'; } if (!$target_format) return $file; // 优先使用GD库 if ($target_format === 'avif' && $support['gd']['avif']) { $converted = awc_convert_with_gd($tmp_path, 'avif'); } elseif ($target_format === 'avif' && $support['imagick']['avif']) { $converted = awc_convert_with_imagick($tmp_path, 'avif'); } if (!$converted && $target_format === 'webp') { if ($support['gd']['webp']) { $target_format = 'webp'; $converted = awc_convert_with_gd($tmp_path, 'webp'); } elseif ($support['imagick']['webp']) { $target_format = 'webp'; $converted = awc_convert_with_imagick($tmp_path, 'webp'); } } if ($converted) { // 更新文件信息 $file['name'] = preg_replace('/\.(jpe?g|png|gif)$/i', '.' . $target_format, $file['name']); $file['type'] = ($target_format === 'avif') ? 'image/avif' : 'image/webp'; } return $file; } // GD库转换函数 function awc_convert_with_gd($path, $format) { try { $image = null; $mime = mime_content_type($path); switch ($mime) { case 'image/jpeg': $image = imagecreatefromjpeg($path); break; case 'image/png': $image = imagecreatefrompng($path); imagealphablending($image, false); imagesavealpha($image, true); break; case 'image/gif': $image = imagecreatefromgif($path); break; default: return false; } if (!$image) return false; $success = false; switch ($format) { case 'avif': $success = imageavif($image, $path, 80); break; case 'webp': $success = imagewebp($image, $path, 80); break; } imagedestroy($image); return $success; } catch (Exception $e) { error_log('GD转换错误: ' . $e->getMessage()); return false; } } // Imagick转换函数 function awc_convert_with_imagick($path, $format) { try { $imagick = new Imagick($path); $format = strtoupper($format); // 保留透明度 $imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_ACTIVATE); $imagick->setFormat($format); $imagick->setImageCompressionQuality(80); // 删除EXIF数据 $imagick->stripImage(); $success = $imagick->writeImage($path); $imagick->clear(); return $success; } catch (Exception $e) { error_log('Imagick转换错误: ' . $e->getMessage()); return false; } }

2025-04-23 · 3 min · Duke Yin

PHP判断网页是否在iframe加载

if( isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] == 'iframe' ) { //网页被嵌入iframe }else{ //网页没有被嵌入iframe }

2025-04-22 · 1 min · Duke Yin

Emby API获取媒体库信息

通过Emby内置的API可以远程获取最近添加的电影和剧集。 如下: https://[EmbyServerURL]:[Port]/ emby/Users/ [UserKey] /Items ?IncludeItemTypes=Movie // series,tv &Recursive=True &ExcludeLocationTypes=Virtual &Fields=DateCreated,PremiereDate,Overview,CommunityRating &Limit=5 &GroupItems=false &SortBy=DateCreated &SortOrder=Descending &format=json &api_key=[APIKey] IncludeItemTypes可以包含Movie电影,Series剧集,tv分集,可以单个也可以多个逗号分隔。 通过返回的id字段,可获取名称,添加时间,海报,背景图片 海报: https://[EmbyServerURL]:[Port]/emby/Items/[id]/Images/Primary?maxHeight=300&maxWidth=200&quality=90 背景图: https://[EmbyServerURL]:[Port]/Items/[id]/Images/Backdrop?maxHeight=360&maxWidth=640&quality=90 在远程调用时,不建议使用前端语言,会暴露APIkey,写在服务端可以安全获取。

2025-04-17 · 1 min · Duke Yin

TMDB Image sizes

{ "base_url": "http://image.tmdb.org/t/p/", "secure_base_url": "https://image.tmdb.org/t/p/", "backdrop_sizes": [ "w300", "w780", "w1280", "original" ], "logo_sizes": [ "w45", "w92", "w154", "w185", "w300", "w500", "original" ], "poster_sizes": [ "w92", "w154", "w185", "w342", "w500", "w780", "original" ], "profile_sizes": [ "w45", "w185", "h632", "original" ], "still_sizes": [ "w92", "w185", "w300", "original" ] }

2025-04-08 · 1 min · Duke Yin