agid])) {
foreach ($g_flag_thread[$flagid] as &$val) {
flag_thread_filter($val);
}
flag_thread_set($flagid, $g_flag_thread[$flagid]);
}
}
return $g_flag_thread[$flagid];
}
// 设置缓存 $key = flagid / $val = flagid下tid数组
function flag_thread_set($key, $val)
{
global $g_flag_thread;
FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread');
empty($g_flag_thread) and $g_flag_thread = array();
$g_flag_thread[$key] = $val;
return website_set('flag_thread', $g_flag_thread);
}
// 删除flag下tid缓存
function flag_thread_delete_cache($flagid)
{
global $g_flag_thread;
FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread');
empty($g_flag_thread) and $g_flag_thread = array();
if (isset($g_flag_thread[$flagid])) {
unset($g_flag_thread[$flagid]);
website_set('flag_thread', $g_flag_thread);
}
return TRUE;
}
// Delete by tid / 通过tid删除flag下的主题和对应flagid缓存
function flag_thread_delete_by_tid($tid)
{
global $g_flag_thread;
FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread');
if (empty($g_flag_thread)) {
$g_flag_thread = array();
} else {
$thread = well_thread_read_cache($tid);
$arrlist = flag_thread_find($tid, 1, $thread['flags']);
$flagarr = $ids = array();
foreach ($arrlist as $val) {
$flagarr[] = $val['flagid'];
$ids[] = $val['id'];
if (isset($g_flag_thread[$val['flagid']])) unset($g_flag_thread[$val['flagid']]);
}
website_set('flag_thread', $g_flag_thread);
// 主键更新
flag_update($flagarr, array('count-' => 1));
// 主键删除
flag_thread_delete($ids);
}
return TRUE;
}
// 主键删除 通过$flagid删除flag下的主题和对应flagid缓存
function flag_thread_delete_by_flagid($flagid)
{
global $g_flag_thread;
FALSE === $g_flag_thread and $g_flag_thread = website_get('flag_thread');
$read = flag_read_cache($flagid);
if (empty($read)) return TRUE;
$arrlist = flag_thread_find_by_flagid($flagid, 1, $read['count']);
if (empty($arrlist)) return TRUE;
$flagarr = $ids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
$flagarr[] = $val['flagid'];
$ids[] = $val['id'];
if (isset($g_flag_thread[$flagid])) unset($g_flag_thread[$flagid]);
}
website_set('flag_thread', $g_flag_thread);
// 主键更新
flag_update($flagarr, array('count-' => $n));
// 主键删除
$r = flag_thread_delete($ids);
return $r;
}
?>break;
}
$r = array('filesize' => filesize($tmpfile), 'width' => $des_width, 'height' => $des_height);;
copy($tmpfile, $destfile);
is_file($tmpfile) && unlink($tmpfile);
imagedestroy($img_dst);
return $r;
}
/**
* 图片裁切
*
* @param string $sourcefile 原图片路径(绝对路径/abc.jpg)
* @param string $destfile 裁切后生成新名称(绝对路径/rename.jpg)
* @param int $clipx 被裁切图片的X坐标
* @param int $clipy 被裁切图片的Y坐标
* @param int $clipwidth 被裁区域的宽度
* @param int $clipheight 被裁区域的高度
* image_clip('xxx/x.jpg', 'xxx/newx.jpg', 10, 40, 150, 150)
*/
function well_image_clip($sourcefile, $destfile, $clipx, $clipy, $clipwidth, $clipheight, $getimgsize = '')
{
global $conf;
empty($getimgsize) AND $getimgsize = getimagesize($sourcefile);
if (empty($getimgsize)) {
return 0;
} else {
$imgwidth = $getimgsize[0];
$imgheight = $getimgsize[1];
if (0 == $imgwidth || 0 == $imgheight) {
return 0;
}
}
if (!function_exists('imagecreatefromjpeg')) {
copy($sourcefile, $destfile);
return filesize($destfile);
}
switch ($getimgsize[2]) {
case 1 :
$imgcolor = imagecreatefromgif($sourcefile);
break;
case 2 :
$imgcolor = imagecreatefromjpeg($sourcefile);
break;
case 3 :
$imgcolor = imagecreatefrompng($sourcefile);
break;
case 15: // WBMP
$imgcolor = imagecreatefromwbmp($sourcefile);
break;
case 18: // WEBP
$imgcolor = imagecreatefromwebp($sourcefile);
break;
}
if (!$imgcolor) return 0;
$img_dst = imagecreatetruecolor($clipwidth, $clipheight);
imagefill($img_dst, 0, 0, 0xFFFFFF);
imagecopyresampled($img_dst, $imgcolor, 0, 0, $clipx, $clipy, $imgwidth, $imgheight, $imgwidth, $imgheight);
$tmppath = isset($conf['tmp_path']) ? $conf['tmp_path'] : ini_get('upload_tmp_dir') . '/';
'/' == $tmppath AND $tmppath = './tmp/';
$tmpfile = $tmppath . md5($destfile) . '.tmp';
imagejpeg($img_dst, $tmpfile, 75);
$n = filesize($tmpfile);
copy($tmpfile, $destfile);
is_file($tmpfile) && unlink($tmpfile);
return $n;
}
function well_image_ext($filename) {
return strtolower(substr(strrchr($filename, '.'), 1));
}
?>
苹果M1芯片MacBookiMacMac mini降级或者重装系统教程-软件玩家 - 软件改变生活!
苹果M1芯片MacBook/iMac/Mac mini降级或者重装系统教程。
很高兴又和大家见面了,苹果的M1芯片自横空出世后,其强悍的运算能力和低功耗满足大部分爱剪辑的工作者,然而M1芯片以其集成内存,加密芯片和GPU的特殊性,用户无法按照英特尔芯片一样的方法对系统进行恢复和重装。因此,小编将耐心讲解M1芯片下该如何恢复和重装系统。
1.以下是升级到macOS Monterey的M1芯片电脑。
2.打开app store,搜索big sur,并获取下载。
3.由于M1芯片的MacBook只有两个雷电3接口,需要加装一个拓展坞以支持u盘的读写。还有恢复/重装系统最好接通电源,以减少电量不足带来的损失。
4.打开磁盘工具。
5.选择外置u盘,选择抹掉。
6.注意格式选择Mac OS拓展(日志式)
7.完成抹盘。
8.在访达/应用程序,打开安装macOS big sur安装程序。
9.在访达/应用程序/安装Macos big sur,选中并右键选择显示包内容。
10.定位到Resources文件夹下的createinstaledia文件并打开。
11.在任务栏的终端右键选择新建窗口。
12.打开设置,在安全性与隐私,找到隐私选项卡,给终端赋予完全磁盘访问权限。
13.回到新建的终端窗口,输入“sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia —volume /volumes/mac(U盘名称)
14.等待系统写入镜像文件到U盘。
15.按下开机键8-10秒不放,选择选项,点击继续。
16.选择用户并输入密码解锁恢复功能。
17.打开终端。
18.输入resetpassword,回车。
19.选择抹掉Mac。
20.待抹盘完成自动重启。
21.连接WiFi并输入此前登陆MacBook的Apple ID和密码。
22.成功激活Mac。
23.选择重新启动。
24.长按开机键,选择install macOS big sur,点击continue。
25.选择简体中文。
26.按照提示安装系统到电脑内置磁盘中。
27.成功将M1芯片MacBook从最新测试版macOS Monterey 12.0降级到最新正式版macOS big sur 11.4。
演示完毕,感谢您的观看。
本文标签:
重装系统芯片苹果教程iMac
更多相关文章
苹果在线商店打不开时:我的技术排查与情感过山车
.code-container {position: relative;margin: 20px 0;background-color: #2d2d2d;border-radius: 5px;overflow: hidden;
Mac教程 | 快速上手:一招搞定倒立的惊叹号和问号
Mac电脑上如何打出倒立的感叹号“¡”和倒立的问号“¿”下面为带来方法,一起来看看吧。 键入倒置感叹号,有时也称为倒置感叹号,非常简单,可以简单的使用快捷键输入。装机必备软件: “¡”请在 Mac 上使用【
QTP教程:从基础开始,解决无法识别控件的难题——UFT对象侦测器篇
寻得几篇好文,原是基于QTP10.0,所以网上下载了QTP10.0的版本,进过一系列安装及破解,花费了些时间倒也算是顺利,然后花了近一个礼拜的时间(当然并不是一直在学,也是在工作之余,每天抽出1个小时吧!)看完了“QTP基础教程学习
轻松玩转 StickyNotes: Flash 中心的奇妙旅程
StickyNotes 开源项目教程 项目介绍 StickyNotes 是一个桌面便签应用程序,旨在为用户提供一个易于管理和自定义的便签工具。该项目支持语音识别功能,并能够通过 Google Drive 同步便签内容,
Ubuntu教程:不借助工具,仅用命令调整笔记本亮度
安装了 ubuntu 双系统后,笔记本原来调节屏幕亮度的快捷键用不了(会显示 亮度条但是实际的亮度并不改变)。 从系统设置里面拖动亮度条也没有任何效果。 尝试用命令行来解决这个问题。 1- 用命令行查询亮度的最
装新系统前,这份指南帮你一键保留所有重要文件
在给电脑重装系统的过程中,有些网友不注意保存好自己的电脑重要数据,导致电脑重装系统后数据丢失怎么办。我们可以借助些软件来恢复,下面就教下大家重装系统以后恢复电脑数据的方法。工具原料:系统版本:win10
系统搞定了,文件咋办?一招教你恢复丢失的数据!
重装系统怎么找回文件?日常使用的电脑总会出现一些故障。常见的故障可以通过开关机解决,更严重的问题有时需要重装电脑系统。重装电脑系统很容易导致保存在电脑中的数据丢失。如果出现这种情况,重装系统后丢失的文件怎么恢复呢?下面小编就来告诉大家
当系统重生,数据如何再生:虚拟化环境下的数据恢复秘籍
虚拟化数据恢复环境&故障:VMware虚拟化平台vmfs文件系统工作人员误操作重装操作系统,服务器崩溃。重装系统会导致文件系统元文件被覆盖。要恢复数据,必须找到&提取重装系统前
Win7系统出问题?试试这个超实用的重装秘籍
Windows 7系统重装是一项相对复杂的任务,需要一定的电脑知识和操作经验。对于小白用户来说,使用一键重装系统软件可以大大简化这个过程。本文将介绍如何进行Windows 7系统重装,并介绍一款简单易用的一键重装系统软件,帮助大家
jQuery教程:快速模拟淘宝图片切换特效
相信大部分人都上过淘宝网吧,里面有个这个效果,当鼠标移动到小图上面,显示大图。 如图 今天我做的是利用JQuery模拟这个效果 源码如下 <head><script type=&
告别等待,迅雷网盘直连包教包会的加速大法
其实这个迅雷抓包不限速教程拖了好久,之前安鹿在别的平台简单提到过相关抓包思路,今天就给大家整理分享一下教程吧(其实不限于迅雷,百度网盘等都可以),适合大家下载一些使用迅雷网盘分享的资源,安鹿轩的资源也可以尝试一下哦
小白也能上手!Lenovo一键恢复系统的实操秘籍
?下面我们来看一看吧。 联想不同类型的电脑进入一键恢复界面的方法不一,台式机一体机就在电脑开机出现联想logo界面时按下Fn+F2组合键。 联想一键恢复系统教程 笔记本则寻找一键恢复按键,在电脑电源关闭的情况下
Win10系统小白教程:快速改写网络标识
在Win10系统下查看网络连接,我们可能会看到以太网下的小字,网络1、网络、网络3这些网络名称,很多朋友由于安装网卡驱动太多次可能会出现络络10的情况,那么如何修改这个网络名称呢?下面小编和大家分享下相关教程。方法一 :通过本地安全
电脑换了新硬盘,还需要重新安装系统吗?别急,这里有答案!
电脑硬盘是电脑的核心组成硬件之一,主要是用来安装操作系统的硬件,如果电脑系统盘硬盘坏了的话电脑就无法进行系统使用了。那么如果电脑换硬盘要重装系统吗?下面小编就给大家分析下电脑换硬盘是否要重装系统。 一、电脑换硬盘要重装系统的情
'重装癖'的自我救赎:经常重装系统真的会导致硬件故障吗?
电脑使用时间长之后就会出现不流畅、卡顿或者连不上网等各种各样的问题,重装系统可以说是包治各种电脑不听话,不过有很多人都担心,怕在重做系统的时候影响到了电脑,所以把用了很慢很慢的电脑坚持的用了下去。总是重装系统会对电脑造成损害么?
联想110-15isk如何迅速重置电脑?一文全解!
联想笔记本快速重装系统指南在日常生活和工作中,联想笔记本因其出色的性能和稳定性受到了广大用户的青睐。然而,随着使用时间的增长,系统可能会出现各种问题,如运行缓慢、软件冲突、病毒感染等。为了解决这些问题,重装系统成为了一个
Navigator Clipboard教程:让你的代码无缝对接剪贴板功能
系列文章目录 前言 背景:一起工作的小伙伴,遇到的需求问题。想要在页面进入的时候对请求过来的内容进行自动的复制。这个功能听起来是一个 如此easy的一个功能,其实这里
Caj2Pdf-qt教程:从入门到实战,批量转换CAJ文件为PDF
如何用caj2pdf-qt实现批量转换?多线程加速CAJKDHNH转PDF教程 caj2pdf-qt是一款强大的CAJ转PDF转换器(GUI版本),支持批量转换和多线程加速功能,能帮助用户快速将CAJ、KDH、NH等格式文
Wireshark教程:轻松过滤并防御DNS攻击
1. DNS异常请求的典型场景与危害 DNS作为互联网的"电话簿",每天处理着海量的域名解析请求。但这也让它成为攻击者的重点目标。我曾在一次安全审计中发现,某企业DNS服务器CPU利用率长期保持在90%以上,排查
发表评论