彻底修复png透明图片黑底的问题

pull/18/head
icret 2019-06-15 00:38:36 +08:00
parent ecef2272d8
commit 00556ce721
9 changed files with 77 additions and 47 deletions

8
.idea/EasyImages2.0.iml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/EasyImages2.0.iml" filepath="$PROJECT_DIR$/.idea/EasyImages2.0.iml" />
</modules>
</component>
</project>

8
.idea/php.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/../../php/php-7.1.13-nts" />
</include_path>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -2,8 +2,15 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b2ee2f11-40d4-43c6-9de2-9c41691ca848" name="Default Changelist" comment=""> <list default="true" id="b2ee2f11-40d4-43c6-9de2-9c41691ca848" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/config.php" beforeDir="false" afterPath="$PROJECT_DIR$/config.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/.idea/EasyImages2.0.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/file.php" beforeDir="false" afterPath="$PROJECT_DIR$/file.php" afterDir="false" /> <change afterPath="$PROJECT_DIR$/.idea/codeStyles/Project.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/codeStyles/codeStyleConfig.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/libs/WaterMask.php" beforeDir="false" afterPath="$PROJECT_DIR$/libs/WaterMask.php" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -17,39 +24,12 @@
</execution> </execution>
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf>
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/libs/WaterMask.php"> <entry file="file://$PROJECT_DIR$/libs/WaterMask.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442"> <state relative-caret-position="530">
<caret line="76" column="22" lean-forward="true" selection-start-line="76" selection-start-column="22" selection-end-line="76" selection-end-column="22" /> <caret line="149" column="61" selection-start-line="149" selection-start-column="61" selection-end-line="149" selection-end-column="61" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/file.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="124">
<caret line="102" column="8" selection-start-line="102" selection-start-column="8" selection-end-line="104" selection-end-column="38" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/libs/function.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="338">
<caret line="49" column="8" lean-forward="true" selection-start-line="49" selection-start-column="8" selection-end-line="49" selection-end-column="9" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="59" column="30" selection-start-line="59" selection-start-column="30" selection-end-line="59" selection-end-column="30" />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -73,6 +53,8 @@
<find>res</find> <find>res</find>
<find>imagecreatetruecolor</find> <find>imagecreatetruecolor</find>
<find>def</find> <find>def</find>
<find>imagecopy</find>
<find>imagecopyresampled</find>
</findStrings> </findStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
@ -193,18 +175,19 @@
<workItem from="1560164098979" duration="13000" /> <workItem from="1560164098979" duration="13000" />
<workItem from="1560444856509" duration="3460000" /> <workItem from="1560444856509" duration="3460000" />
<workItem from="1560511153119" duration="2276000" /> <workItem from="1560511153119" duration="2276000" />
<workItem from="1560513441936" duration="8506000" /> <workItem from="1560513441936" duration="8769000" />
<workItem from="1560528928873" duration="1113000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="16382000" /> <option name="totallyTimeSpent" value="17758000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1066" extended-state="6" /> <frame x="-8" y="-8" width="1936" height="1066" extended-state="6" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1380597" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.13965885" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
@ -266,13 +249,7 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/libs/test.php"> <entry file="file://$PROJECT_DIR$/libs/test.php" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="156">
<caret line="6" selection-start-line="6" selection-end-line="9" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT"> <state split_layout="SPLIT">
@ -299,15 +276,15 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/file.php"> <entry file="file://$PROJECT_DIR$/file.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="124"> <state relative-caret-position="280">
<caret line="102" column="8" selection-start-line="102" selection-start-column="8" selection-end-line="104" selection-end-column="38" /> <caret line="108" column="21" selection-start-line="108" selection-start-column="12" selection-end-line="108" selection-end-column="21" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/libs/WaterMask.php"> <entry file="file://$PROJECT_DIR$/libs/WaterMask.php">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442"> <state relative-caret-position="530">
<caret line="76" column="22" lean-forward="true" selection-start-line="76" selection-start-column="22" selection-end-line="76" selection-end-column="22" /> <caret line="149" column="61" selection-start-line="149" selection-start-column="61" selection-end-line="149" selection-end-column="61" />
</state> </state>
</provider> </provider>
</entry> </entry>

View File

@ -130,8 +130,10 @@ class Imgs
$srcImg_w = is_numeric($obj[0]) ? $obj[0] : 400; $srcImg_w = is_numeric($obj[0]) ? $obj[0] : 400;
$srcImg_h = is_numeric($obj[1]) ? $obj[1] : 300; $srcImg_h = is_numeric($obj[1]) ? $obj[1] : 300;
# 创建画布 # 创建透明画布 一共3个步骤在下边有标记
$dst_img = @imagecreatetruecolor($srcImg_w, $srcImg_h); $dst_img = @imagecreatetruecolor($srcImg_w, $srcImg_h);
@imagealphablending($dst_img,false);//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色;3-2
@imagesavealpha($dst_img,true);//这里很重要,意思是不要丢了$thumb图像的透明色;3-3
} else { } else {
# 获取图片信息 # 获取图片信息
$srcInfo = @getimagesize($src); $srcInfo = @getimagesize($src);
@ -145,14 +147,17 @@ class Imgs
switch ($srcInfo[2]) { switch ($srcInfo[2]) {
case 1: case 1:
$dst_img = imagecreatefromgif($src); $dst_img = imagecreatefromgif($src);
imagesavealpha($dst_img,true);//这里很重要;3-1
break; break;
case 2: case 2:
$dst_img = imagecreatefromjpeg($src); $dst_img = imagecreatefromjpeg($src);
imagesavealpha($dst_img,true);//这里很重要;3-1
break; break;
case 3: case 3:
$dst_img = imagecreatefrompng($src); $dst_img = imagecreatefrompng($src);
imagesavealpha($dst_img,true);//这里很重要;3-1
break; break;
default: default: