我正在使用一个允许用户上传图像的脚本.该脚本调整大小并将图像转换为JPEG.
我遇到的问题是当上传具有透明度的PNG时,生成的JPEG图像是黑色的,其中有透明度.
如何编辑以下脚本以将黑色替换为白色?它已经为GIF做了这个,但对PNG没做.
// RESIZE IMAGE AND PUT IN USER DIRECTORY
switch($this->file_ext)
{
case "gif":
$file = imagecreatetruecolor($width, $height);
$new = imagecreatefromgif($this->file_tempname);
$kek=imagecolorallocate($file, 255, 255, 255);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, 0, 0, 0, 0, $width, $height, $this->file_width, $this->file_height);
imagejpeg($file, $photo_dest, 100);
ImageDestroy($new);
ImageDestroy($file);
break;
case "bmp":
$file = imagecreatetruecolor($width, $height);
$new = $this->imagecreatefrombmp($this->file_tempname);
for($i=0; $i<256; $i++) { imagecolorallocate($file, $i, $i, $i); }
imagecopyresampled($file, $new, 0, 0, 0, 0, $width, $height, $this->file_width, $this->file_height);
imagejpeg($file, $photo_dest, 100);
ImageDestroy($new);
ImageDestroy($file);
break;
case "jpeg":
case …Run Code Online (Sandbox Code Playgroud) 我在IB的视图上放了一个UIImageView控件.控件的大小只是我决定的,非常随机的大小真正我想做的是每当我将image属性设置为新图像时自动调整大小的控件.我希望它实际调整大小到图像的大小.可以自动完成吗?没有任何代码干预?如果不是 - 在这种情况下最好的方法是什么?
今天发生的事情很奇怪.我将图像加载到ImageView中,即使ImageView的大小没有改变,我也能看到图像正确显示.这干扰了我在ImageView上抓取用户触摸的意图.用户触摸实际图像,但由于图像的某些部分位于ImageView的外部(这是奇怪的部分) - 点映射变得疯狂有人能想到对此的任何解释吗?
谢谢
有没有办法阻止用户调整表单大小?
目前我正在使用:
当表格大小改变....
MainForm.Height := 761;
MainForm.Width := 777;
Run Code Online (Sandbox Code Playgroud)
但这看起来很可怕,因为当用户试图改变表单大小时它会闪烁.
我有一个矩形图像,例如30x800像素
我如何使用回形针进行缩放以将宽高比保持为100x100像素的图像,边框填充空白区域?
例如:http://www.imagemagick.org/Usage/thumbnails/pad_extent.gif
我有一个Windows窗体对象,包含3个对象,一个树视图,一个richtextbox和一个tabcontrol.它们没有停靠在窗体中,但它们是锚定的(顶部+左侧).
我已经编写了代码来调整form-resize事件处理程序时调整它们的大小,但它似乎只是为了增加表单大小,也就是说,我无法将表单调整为更小的大小.这包括我首次增加主窗体然后尝试将其恢复为原始大小的时间.
使用以下代码调整每个Form调整大小后,手动设置三个对象的大小:
treeView1.Height += (this.Height - oldHeight);
richTextBox1.Width += (this.Width - oldWidth);
tabControl1.Width += (this.Width - oldWidth);
tabControl1.Height += (this.Height - oldHeight);
oldHeight = this.Height;
oldWidth = this.Width;
Run Code Online (Sandbox Code Playgroud)
没有任何对象具有设置的最小大小(在整个大小调整过程中它们都是0,0)
是什么阻止将表单调整为较小的大小?
使用ImageMagick,我可以很容易地截取我想要的截图,但我想调整它以减少空间占用.我找到了这个 :
convert screen.jpg -resize 1280x1024\! screen.jpg
Run Code Online (Sandbox Code Playgroud)
但是我想基于最大尺寸(宽度或高度)来调整它的大小,而另一个(高度或宽度)也将按比例调整大小.
例如,假设我想将我的所有图像调整为最大宽度/高度尺寸的600px:
我怎么能用ImageMagick做到这一点?(或者至少,定义一个最大尺寸(例如,仅宽度)).
谢谢你的帮助!
注意:是否可以使用import命令自动实现它?
我正在准备一个自定义视图,它看起来类似于屏幕截图中显示的示例.我在运行时添加所有用户界面组件(标签,文本字段,单选按钮,..).要定位元素我使用Autolayout约束.到目前为止这部分工作正常.

元素的数量因环境而异.我想知道如何使用Autolayout约束动态调整父视图的大小(很可能是视图的高度).因此,视图约束应考虑为当前附加的子视图定义的高度和边距.
我正在使用这堂课:
class ImgResizer {
function ImgResizer($originalFile = '$newName') {
$this -> originalFile = $originalFile;
}
function resize($newWidth, $targetFile) {
if (empty($newWidth) || empty($targetFile)) {
return false;
}
$src = imagecreatefromjpeg($this -> originalFile);
list($width, $height) = getimagesize($this -> originalFile);
$newHeight = ($height / $width) * $newWidth;
$tmp = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
if (file_exists($targetFile)) {
unlink($targetFile);
}
imagejpeg($tmp, $targetFile, 95);
}
}
Run Code Online (Sandbox Code Playgroud)
哪个效果很好,但它失败了png,它创建了一个调整大小的黑色图像.
有没有办法调整这个类来支持png图像?
如果我有一个被调用的图像inImg和一个名为" outImg如何调整大小" 的图像outImg,那么它的大小是75%inImg?
我有一个带约束的UITableViewCell,以便在iPhone 6和iPhone 6+上正确布局单元格.
单元格内容正确地正确调整大小.但是,我需要在其中一个视图上绘制一个子图层渐变.为了做到这一点,我正在使用awakeFromNib来绘制子层.
AwakeFromNib在自动调整之前给出了帧的大小,因此渐变子视图的大小不正确.
如果我使用layoutSubviews,第一次调用时,大小也是错误的,并且单元格需要在其大小合适之前滚动; 所以这个方法也行不通
我应该使用什么方法来获得正确的帧尺寸才能正确绘制?
resize ×10
image ×3
autolayout ×2
objective-c ×2
php ×2
c# ×1
c++ ×1
cocoa ×1
delphi ×1
forms ×1
gd ×1
imagemagick ×1
ios ×1
iphone ×1
opencv ×1
paperclip ×1
png ×1
point ×1
touches ×1
uiimageview ×1
uitableview ×1
winforms ×1