我使用CodeIgniter 1.7开发了一个照片共享社区网站.成员上传的照片会自动调整为多种格式,我使用CodeIgniter Image Manipulation类.该类内置于框架中,基本上是多个图像处理库的包装器,如GD,GD2,ImageMagick和NETPBM.在我的主机上,我只能使用GD2,所以这就是这个问题的所在.
关于我的问题.以下是我网站上已调整大小的照片示例.请注意,原件非常大,宽度超过3000像素:
http://www.jungledragon.com/image/195/female_impala_close-up.html
现在,看看同样的图像,也调整大小,在Flickr上稍大一些:
http://www.flickr.com/photos/fledder/3763538865/in/set-72157621744113979
看到戏剧性的差异?我正试图弥合这个巨大的差距.我做的第一件事是对图像应用锐化滤镜.你可以在这里看到结果:

虽然仍然不完美,但它至少接近Flickr图像的清晰度水平.剩下的问题是颜色被冲走,好像它们的饱和度降低了.这种情况发生在锐化滤镜之前,因此它必须在GD2中.
这个问题对我来说至关重要,但我不知道在哪里看.我发现一些.NET线程正在谈论色度子采样,但我不知道在我的设置中如何处理这些信息.我正在寻找在我的设置约束下工作的任何解决方案.
更新:这里是原始文件,就像我将它上传到我的网站和Flickr一样:
http://www.jungledragon.com/img/DSC07275.jpg
更新2:我很震惊.好的方式.安装ImageMagick但是在切换到它之后花了很多痛苦(这是将'imagemagick'设置为Code Igniter图像处理类使用的库的问题,测试图像的结果如下:

ImageMagick的调整大小正是按预期完成的.颜色被保留,清晰度就在那里.是的,我禁用了自定义锐化程序,因为ImageMagick不再需要它.最重要的是,这个过程更快,内存也更少.这里有另一个很大的部分:我无法解释它,但我绝对没有告诉ImageMagick使用特定的颜色配置文件,这是由用户@Alix建议的.到目前为止,在我的测试中,无论是否有嵌入的配置文件,都可以看到颜色信息.输出只是输入的较小版本.ImageMagick真的那么聪明还是我在做梦?
我正在管理照片共享网站,作为管理员,我想要一个按钮来检查上传照片的来源(为了侵犯版权).
我的想法是简单地启动Google反向图片搜索服务的网址,将我的图片网址作为网址中的参数传递.我不需要自动后端集成,我只需单击该按钮查看可疑图像,并手动和直观地检查结果.
由于不推荐使用Google Image Search API,我正在尝试弄清楚这些反向网址是如何编码的.这是一个例子:
我认为SBI参数是URL的编码版本.有谁知道这是什么样的编码?
我有一个PHP照片共享应用程序,其中用户上传的图像使用ImageMagick调整为各种拇指格式.
作为一种节省文件大小的看似"智能"的方式,我正在从这些拇指中删除exif信息,如下所示:
$imagick = new Imagick($image);
$imagick->stripImage();
$imagick->writeImage($image);
Run Code Online (Sandbox Code Playgroud)
这有效.它确实删除了EXIF信息,其中30KB的大拇指节省12KB并变为18KB.在单个页面上显示许多此类拇指时显着节省.
但问题是它的效果有点太好了.与非剥离版本相比,生成的图像似乎丢失了大量的颜色信息并且看起来"平坦".
根据我迄今为止的研究,我的理论是以下一个或两个都是正确的:
无论问题的原因是什么,我都在寻找一种方法来删除EXIF信息,使其不会影响图像质量或颜色本身.
这甚至可能吗?
更新:
根据Gerald Schneider的回答,我尝试在"剥离"图像之前将质量设置强制为100%:
$imagick = new Imagick($image);
$imagick->setCompression(imagick::COMPRESSION_JPEG);
$imagick->setCompressionQuality(100);
$imagick->stripImage();
$imagick->writeImage($image);
Run Code Online (Sandbox Code Playgroud)
不幸的是,问题仍然存在.下面是示例输出,尽管将质量设置为100%,但图像仍然是平坦的.

看看我拥有并运行的网站的这个页面设计:
http://www.jungledragon.com/image/9472/barn_owl_close-up.html
如您所见,这涉及经典的双列布局.事情的顺序很重要.例如,您可以直接在照片旁边看到这个问题.
我现在正在编写针对该网站的响应式设计,并面临挑战.想象一下在狭窄的智能手机视口上的页面.经典的策略是简单地"堆叠"左侧下方的右列,让用户垂直滚动.然而,就元素的排序而言,这远非理想."specie"区块将位于照片下方,用户首先必须滚动评论之类的内容才能看到照片与硬币之间的关系.
我正试图解决这个问题,而这篇解释CSS的flexbox作为可能的解决方案的文章听起来非常有希望:
http://www.jordanm.co.uk/post/21863299677/building-with-content-choreography
这里的想法是只使用CSS,可以改变元素的视觉顺序,正是我需要的.不幸的是,从那时起,我了解到该文章使用了过时的规范,并且新规范几乎不受任何浏览器的支持:
http://css-tricks.com/old-flexbox-and-new-flexbox/
这种废墟对我而言.不过,我还是想在概念层面提出我的问题:
我见过的关于flexbox的所有演示都有这样简单的标记:
<div id="somecontainer">
<div id="child1"></div>
<div id="child2"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
接下来,容器被声明为flexbox,方向垂直.最后,为每个子元素分配一个订单.这允许例如使用单个CSS语句将child2移动到child1之上.
现在问题就在这里.如果实际标记在某些意义上更复杂,那么还有其他层次结构在起作用?一个例子:
<div id="somecontainer">
<div id="colmain">
<div id="content1"></div>
<div id="content2"></div>
<div id="content3"></div>
</div>
<div id="colside">
<div id="content4"></div>
<div id="content5"></div>
<div id="content6"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如您所见,此标记具有其他层次结构,要重新排序的实际内容块不是最高级别容器的直接子元素.他们是孩子,但不是直接的孩子.
flexbox和子元素的重新排序是否适用于这种情况?例如,"content5"可以在"content1"和"content2"之间移动吗?
无论浏览器支持不佳,我都试图在概念上理解是否支持它.我问的原因是因为额外的列层次结构在标记中非常常见,如果flexbox重新排序仅适用于直接子节点,那将完全糟糕.
我正在使用优秀的Nivoslider插件在我的主页上展示一组照片,目前是5.所有工作都很好,但每张照片都增加了大约150K的页面重量.我实际上想要展示大约10个"幻灯片",但由于所有这些图像都是在页面开头预先加载的,因此页面权重很快会变得太大,特别是因为许多用户可能不会等待"显示"完成.
我想知道是否有可能不预先载入图像,或者尤为明显,只有X领先的图像.我在文档中找不到任何关于它的内容,所以我认为它不是本机支持的.有任何想法吗?
可能重复:
如何计算相对时间?
我想在我的社交网络应用上格式化日期,就像Digg.com和其他网站一样.在那里,你会看到非常友好的约会,例如:
在我开始创建这样的东西之前,有没有人知道任何现成的脚本,我只需插入一个日期戳,并根据它与当前时间的关系给出一个友好的日期文本?
PS:我需要在PHP中使用它,但伪代码或任何其他语言也可以.
我有一个奇怪的问题并不是技术问题,但我希望收集有意义的建议.
我正在构建一个大型Web应用程序,基本上是一个照片共享社区站点.作为此站点的一部分,登录用户可以访问他们的个人资料,从中可以看到他们自己的东西(图像,评论,投票)以及编辑他们的详细信息和偏好.用户还可以查看其他用户的个人资料(他们的图像,评论,投票),但当然不会编辑他们的详细信息.
我的问题很简单但它一直困扰着我:用什么称呼用户的个人链接和内容?他们应该被命名为"你的":
您的图片
您的资料
......
......或"我的":
我的图片
我的个人资料
...或者也许是名字,即使您已登录:
Fledder的
头像Fledder的头像
尽管听起来不重要,但我真的在这方面寻求建议.我对任何标准特别感兴趣,为什么选择首选,以及在哪种情况下首选.
我正在使用一些HTML5表单功能来逐步增强我的Web项目的用户体验.其中一个特别是自动对焦,我想在一个允许用户输入标签的模态(灯箱)对话框中使用它.现有标签可能存在.
我安装的唯一支持自动对焦的浏览器是Chrome 9,但是当我测试它时,它确实将焦点放在字段上,但也会自动选择字段中的所有现有文本.我没想到或想要自动选择,我想要自动对焦.
我的期望是错误还是Chrome错了?
我正在使用AddThis小部件来启用向Twitter,Facebook和Google+分享网站内容.我已在我的网站上签名用户,并且正在考虑在签名用户和他的共享行为之间建立关联.
为此,我需要收听Addthis小部件的回调,这是他们网站上的直接示例:
function shareEventHandler(evt) {
if (evt.type == 'addthis.menu.share') {
alert(typeof(evt.data)); // evt.data is an object hash containing all event data
alert(evt.data.service); // evt.data.service is specific to the "addthis.menu.share" event
}
}
// Listen for the share event
addthis.addEventListener('addthis.menu.share', shareEventHandler);
Run Code Online (Sandbox Code Playgroud)
此事件的问题在于它在实际共享内容之前被触发.例如,用户单击"Tweet"按钮,触发此脚本,启动Tweet对话框,用户向前移动或取消该对话框中的共享.
理想情况下,事件处理程序在实际共享成功完成后触发,而不是在用户取消时触发.这似乎不可能从官方文档中,但我想尝试,如果有人有创造性的解决方法?
对于我的应用程序,我想很好地设置提交按钮的样式.使用普通的CSS,我设法让它在Firefox中看起来很好,在IE中也很糟糕.然后我看到了这篇博文:
http://www.sohtanaka.com/web-design/liquid-color-adjustable-css-buttons/
使用这种技术,您可以在几乎所有浏览器中获得华丽的按钮.但是,还有一些可访问性问题:
基本上我想要的也许是不可能的:博客条目中的样式质量,但使用普通元素实现,以便我得到正常的行为.
我真的必须在肮脏的黑客或糟糕的造型之间做出选择吗?
到目前为止我看到的每个按钮样式教程在IE中都有次优化结果:(
php ×3
css ×2
addthis ×1
autofocus ×1
button ×1
codeigniter ×1
css3 ×1
date ×1
flexbox ×1
formatting ×1
gd2 ×1
html5 ×1
imagick ×1
javascript ×1
jquery ×1
nivo-slider ×1
thumbnails ×1
ui-design ×1
uilabel ×1